map的键排序方法

1.对map中的key进行正序排序

Map<Integer, String> map = Maps.newHashMap();// 原始map

LinkedHashMap<Integer, String> sortedMap= map.entrySet().stream().sorted(Map.Entry.comparingByKey())

// .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (clashKey1, clashKey2) -> clashKey1, LinkedHashMap::new));

实例:

复制代码
public static void main(String[] args) {
    // 对map中的key进行正序排序
    Map<Integer, String> map = Maps.newHashMap();
    map.put(2, "2222222222222");
    map.put(3, "3333333333333");
    map.put(1, "11111111111111111");
    map.put(4,"4444444444444444");
    log.info("map={}", JSONObject.toJSONString(map));
    LinkedHashMap<Integer, String> sortedMap = map.entrySet().stream().sorted(Map.Entry.comparingByKey()).
            collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (clashKey1, clashKey2) -> clashKey1, LinkedHashMap::new));
    log.info("sortedMap={}", JSONObject.toJSONString(sortedMap));
}

输出结果:

map={1:"11111111111111111",2:"2222222222222",3:"3333333333333",4:"4444444444444444"}

sortedMap={1:"11111111111111111",2:"2222222222222",3:"3333333333333",4:"4444444444444444"}

2.对map中的key进行倒序排序

Map<Integer,String> originalMap = Maps.newHashMap();// 原始map

LinkedHashMap<Integer,String> sortedMap= new LinkedHashMap<>();

Object[] array = originalMap.keySet().toArray(); Arrays.sort(array,Collections.reverseOrder());

for (int i = 0; i < array.length; i++) {

sortedMap.put((Integer) array[i],originalMap.get(array[i]));

}

实例:

复制代码
public static void main(String[] args) {
    Map<Integer,String> originalMap = Maps.newHashMap();
    originalMap.put(2,"2222222222222");
    originalMap.put(3,"3333333333333");
    log.info("originalMap={}",JSONObject.toJSONString(originalMap));
    LinkedHashMap<Integer,String> sortedMap= new LinkedHashMap<>();
    Object[] array = originalMap.keySet().toArray();
    Arrays.sort(array,Collections.reverseOrder());
    for (int i = 0; i < array.length; i++) {
        sortedMap.put((Integer) array[i],originalMap.get(array[i]));
    }
    log.info("linkedHashMap={}",JSONObject.toJSONString(sortedMap));

}

最后输出结果:

originalMap={1:"1111111111111",2:"2222222222222",3:"3333333333333"}

sortedMap={3:"3333333333333",2:"2222222222222",1:"1111111111111"}

相关推荐
数字化顾问14 分钟前
Flink ProcessFunction 与低层级 Join 实战手册:实时画像秒级更新系统
java·开发语言
计算机学姐21 分钟前
基于微信小程序的垃圾分类管理系统【2026最新】
java·vue.js·spring boot·mysql·微信小程序·小程序·mybatis
Mr_hwt_12328 分钟前
spring boot框架中本地缓存@Cacheable原理与踩坑点详细解析
java·spring boot·后端·缓存
zl97989935 分钟前
SpringBoot-自动配置原理
java·spring boot·spring
C嘎嘎嵌入式开发1 小时前
【机器学习算法篇】K-近邻算法
算法·机器学习·近邻算法
小L~~~1 小时前
2025吉比特-游戏引擎开发-一面复盘
数据结构·算法·游戏引擎
兮动人1 小时前
Java 单元测试中的 Mockito 使用详解与实战指南
java·开发语言·单元测试
豆沙沙包?1 小时前
2025年--Lc186--64. 最小路径和(多维动态规划,矩阵)--Java版
java·矩阵·动态规划
武子康1 小时前
Java-151 深入浅出 MongoDB 索引详解 性能优化:慢查询分析 索引调优 快速定位并解决慢查询
java·开发语言·数据库·sql·mongodb·性能优化·nosql