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

相关推荐
luckys.one1 分钟前
第9篇:Freqtrade量化交易之config.json 基础入门与初始化
javascript·数据库·python·mysql·算法·json·区块链
~|Bernard|2 小时前
在 PyCharm 里怎么“点鼠标”完成指令同样的运行操作
算法·conda
战术摸鱼大师2 小时前
电机控制(四)-级联PID控制器与参数整定(MATLAB&Simulink)
算法·matlab·运动控制·电机控制
Christo32 小时前
TFS-2018《On the convergence of the sparse possibilistic c-means algorithm》
人工智能·算法·机器学习·数据挖掘
好家伙VCC3 小时前
数学建模模型 全网最全 数学建模常见算法汇总 含代码分析讲解
大数据·嵌入式硬件·算法·数学建模
皮皮林5513 小时前
SpringBoot 全局/局部双模式 Gzip 压缩实战:14MB GeoJSON 秒变 3MB
java·spring boot
weixin_456904274 小时前
Spring Boot 用户管理系统
java·spring boot·后端
趁你还年轻_4 小时前
异步编程CompletionService
java
DKPT4 小时前
Java内存区域与内存溢出
java·开发语言·jvm·笔记·学习
sibylyue4 小时前
Guava中常用的工具类
java·guava