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"}

相关推荐
yqd6663 分钟前
SpringSecurity的使用
java·spring
-To be number.wan4 分钟前
【数据结构真题解析】哈希表中等难度挑战:冲突处理与查找效率深度剖析
数据结构·哈希算法
csdn_aspnet5 分钟前
C 语言的优雅回归:从零手造数据结构
c语言·数据结构
仙俊红15 分钟前
Java Map 家族核心解析
java·开发语言
浅念-19 分钟前
C语言小知识——指针(3)
c语言·开发语言·c++·经验分享·笔记·学习·算法
Hcoco_me40 分钟前
大模型面试题84:是否了解 OpenAI 提出的Clip,它和SigLip有什么区别?为什么SigLip效果更好?
人工智能·算法·机器学习·chatgpt·机器人
一嘴一个橘子44 分钟前
springMvc 接收参数、cookie、header
java
BHXDML1 小时前
第九章:EM 算法
人工智能·算法·机器学习
code_li1 小时前
聊聊支付宝架构
java·开发语言·架构
却道天凉_好个秋2 小时前
目标检测算法与原理(三):PyTorch实现迁移学习
pytorch·算法·目标检测