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

相关推荐
速易达网络25 分钟前
基于Java TCP 聊天室
java·开发语言·tcp/ip
沿着路走到底38 分钟前
JS事件循环
java·前端·javascript
爱笑的眼睛111 小时前
超越 `cross_val_score`:深度解析Scikit-learn交叉验证API的架构、技巧与陷阱
java·人工智能·python·ai
jianfeng_zhu1 小时前
整数数组匹配
数据结构·c++·算法
yueqingll2 小时前
032、数据结构之代码时间复杂度和空间复杂度的判断:从入门到实战
数据结构
smj2302_796826522 小时前
解决leetcode第3782题交替删除操作后最后剩下的整数
python·算法·leetcode
❀͜͡傀儡师2 小时前
SpringBoot 扫码登录全流程:UUID 生成、状态轮询、授权回调详解
java·spring boot·后端
a努力。2 小时前
国家电网Java面试被问:Spring Boot Starter 制作原理
java·spring boot·面试
一 乐2 小时前
酒店预约|基于springboot + vue酒店预约系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端