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) arrayi,originalMap.get(arrayi));

}

实例:

复制代码
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"}

相关推荐
万年咸鱼16 分钟前
Java List 接口详解:从基础到实战
java·windows·list
Java的搬运工19 分钟前
Spring boot 事件监听
java·spring boot·spring·编程语言
一水鉴天22 分钟前
问题分类的三元组映射体系与求解方法论 20260901(千问)
人工智能·算法·机器学习
tryxr23 分钟前
Chat2Excel 项目网关服务开发
java·gateway·网关模块开发
谢亮_vipxieliang23 分钟前
ValidX vs Apache Commons Validator:功能与性能对比
java·服务器·spring boot·后端·spring cloud·apache·hibernate
breeze jiang24 分钟前
LangChain Memory 实战:用 InMemoryChatMessageHistory 管理多轮对话
前端·算法·langchain
tryxr27 分钟前
Chat2Excel 项目通用服务开发
java·开发语言·excel·java项目开发
小裕哥略帅32 分钟前
Spring AOP 实现通用 Token 自动刷新重试工具包
java·后端·spring
Lenyiin36 分钟前
第6篇_Python高级语法与标准库精髓:从会用到达精通
java·python·html