map的键排序方法

news/2024/9/29 3:29:48/

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


http://www.ppmy.cn/news/1531413.html

相关文章

Ant design vue中的日期

1、日期默认为当天&#xff08;版本3.X&#xff09;&#xff1a; // DOM&#xff1a; <a-date-picker v-model:value"chooseDate" :showToday"false" :allowClear"false" format"YYYY-MM-DD" class"datePick"/>// DA…

水电站/水库大坝安全监测系统完整解决方案

一、背景 在当今社会&#xff0c;随着全球对清洁能源需求的日益增长&#xff0c;水电站作为可再生能源的重要组成部分&#xff0c;其安全稳定运行显得尤为重要。水电站&#xff0c;尤其是大型水库大坝&#xff0c;不仅承载着发电、防洪、灌溉等多重功能&#xff0c;还直接关系…

信号分解降噪 | Matlab实现基于TVFEMD-IMF能量熵增量的数据降噪方法

信号分解降噪 | Matlab实现基于TVFEMD-IMF能量熵增量的数据降噪方法 目录 信号分解降噪 | Matlab实现基于TVFEMD-IMF能量熵增量的数据降噪方法效果一览基本介绍程序设计参考资料 效果一览 基本介绍 信号分解降噪 | Matlab实现基于TVFEMD-IMF能量熵增量的数据降噪方法。该方法引…

(十六)Ubuntu 20.04 下搭建PX4+MATLAB 仿真环境(HITL)

在文章&#xff08;十五&#xff09;Ubuntu 20.04 下搭建PX4MATLAB 仿真环境我们学习了如何配置仿真环境&#xff0c;在本节&#xff0c;主要进行HITL的仿真环境搭建。 根据&#xff08;十五&#xff09;Ubuntu 20.04 下搭建PX4MATLAB 仿真环境完成配置到如下界面&#xff1a;…

centos 7.9安装k8s

前言 Kubernetes单词来自于希腊语&#xff0c;含义是领航员&#xff0c;生产环境级别的容器编排技术&#xff0c;可实现容器的自动部署扩容以及管理。Kubernetes也称为K8S&#xff0c;其中8代表中间8个字符&#xff0c;是Google在2014年的开源的一个容器编排引擎技术&#xff…

基于springboot垃圾分类网站

基于springboot垃圾分类网站 摘 要 本论文主要论述了如何使用JAVA语言开发一个垃圾分类网站 &#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述垃圾分类网站的当…

32 C 语言指针的长度与运算(指针加减整数、指针自增自减、同类型指针相减、指针的比较运算)

目录 1 指针的长度 2 指针与整数的加减运算 3 指针自增与自减 4 同类型指针相减 5 指针的比较运算 6 测试题 1 指针的长度 在 C 语言中&#xff0c;sizeof 运算符可以用来计算指针的长度。指针的长度实际上与指针所指向的数据类型无关&#xff0c;而是与系统的位数&…

kali linux crunch工具使用 -- 生成字典

1. 生成26位字母为元素&#xff0c;最小俩位数最大四位数的密码字典并保存到文件中 #crunch min max -o 文件路径 crunch 2 4 -o /root/pass.txt #crunch 2 4 >> /root/pass.txt图上显示2MB,一共有475228个(2~4位的密码) #查看pass.txt文件里的前20行 head 20 pass.txt…