Java代码Demo——Map根据key或value排序

Map根据key排序

升序

Demo代码:

//使用TreeMap
Map<Integer, String> map = new TreeMap<>();
map.put(10, "第10名次");
map.put(15, "第15名次");
map.put(1, "第1名次");
map.put(5, "第5名次");
map.put(3, "第3名次");
map.put(8, "第8名次");
System.out.println(map.toString());

运行结果:

{1=第1名次, 3=第3名次, 5=第5名次, 8=第8名次, 10=第10名次, 15=第15名次}

如上所示,TreeMap会根据key值进行排序,默认是升序(注:TreeMap不会根据Value值进行排序)。

降序

Demo代码:

//使用TreeMap,并自定义比较器
Map<Integer, String> map = new TreeMap<>(new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o2.compareTo(o1);}
});
map.put(10, "第10名次");
map.put(15, "第15名次");
map.put(1, "第1名次");
map.put(8, "第8名次");
System.out.println(map.toString());

运行结果:

{15=第15名次, 10=第10名次, 8=第8名次, 1=第1名次}

Map根据Value排序

Demo代码:

Map<String, List<String>> valMap = new HashMap<>();
//初始化值
List<String> valList1 = new ArrayList<>();
valList1.add("val1");
valList1.add("val2");
valList1.add("val3");
valList1.add("val4");
List<String> valList2 = new ArrayList<>();
valList2.add("val1");
valList2.add("val2");
List<String> valList3 = new ArrayList<>();
valList3.add("val1");
valList3.add("val2");
valList3.add("val3");
valList3.add("val4");
valList3.add("val5");
valList3.add("val6");
valList3.add("val7");
List<String> valList4 = new ArrayList<>();
valList4.add("val1");
//赋值
valMap.put("key1", valList1);
valMap.put("key2", valList2);
valMap.put("key3", valList3);
valMap.put("key4", valList4);
//将Map转为List
ArrayList<Entry<String, List<String>>> list = new ArrayList<>(valMap.entrySet());
//排序,自定义比较器,根据value值进行降序
list.sort(new Comparator<Entry<String, List<String>>>() {@Overridepublic int compare(Entry<String, List<String>> o1, Entry<String, List<String>> o2) {Integer o1Int = o1.getValue().size();Integer o2Int = o2.getValue().size();return o2Int.compareTo(o1Int);}
});
System.out.println(list);

运行结果:

[key3=[val1, val2, val3, val4, val5, val6, val7], key1=[val1, val2, val3, val4], key2=[val1, val2], key4=[val1]]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/133064.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring boot集成sentinel限流服务

Sentinel集成文档 Sentinel控制台 Sentinel本身不支持持久化&#xff0c;项目通过下载源码改造后&#xff0c;将规则配置持久化进nacos中&#xff0c;sentinel重启后&#xff0c;配置不会丢失。 架构图&#xff1a; 改造步骤&#xff1a; 接着我们就要改造Sentinel的源码。…

U盘显示无媒体怎么办?方法很简单

当出现U盘无媒体情况时&#xff0c;您可以在磁盘管理工具中看到一个空白的磁盘框&#xff0c;并且在文件资源管理器中不会显示出来。那么&#xff0c;导致这种问题的原因是什么呢&#xff1f;我们又该怎么解决呢&#xff1f; 导致U盘无媒体的原因是什么&#xff1f; 当您遇到上…

SLAM从入门到精通(被忽视的基础图像处理)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 工业上用激光slam的多&#xff0c;用视觉slam的少&#xff0c;这是大家都知道的常识。毕竟对于工业来说&#xff0c;健壮和稳定是我们必须要考虑的…

Pytorch 快速参数权重初始化

定义一个函数&#xff1a; 这里比如要初始化2维卷积权重值&#xff0c;采用xaiver 数据分布&#xff0c;还有很多其他的数据分布可以探索 def weights_init(m):if isinstance(m, nn.Conv2d):xavier(m.weight.data)xavier(m.bias.data) 然后定义一个含2维卷积的网络&#xff…

Zinx框架-游戏服务器开发002:框架学习-按照三层结构模式重构测试代码+Tcp数据适配+时间轮定时器

文章目录 1 Zinx框架总览2 三层模式的分析3 三层重构原有的功能 - 头文件3.1 通道层Stdin和Stdout类3.1.2 StdInChannel3.1.2 StdOutChannel 3.2 协议层CmdCheck和CmdMsg类3.2.1 CmdCheck单例模式3.2.1.1 单例模式3.2.1.2 * 命令识别类向业务层不同类别做分发 3.2.2 CmdMsg自定…

【Mac开发环境搭建】JDK安装、多JDK安装与切换

文章目录 JDK下载与安装下载安装 配置环境变量安装多个JDK共存 JDK下载与安装 下载 Oracle官网提供了非常多个版本的JDK供下载&#xff0c;可以点击如下链接重定向到JDK下载页面 ORACLE官网JDK下载 安装 下面的官方文档可以点开收藏到浏览器的收藏夹&#xff0c;这样后续在开…

Ribbon讲解

一&#xff1a;Ribbon是什么&#xff1f; Ribbon其实就是一个软负载均衡的客户端组件。 二&#xff1a;负载均衡(LB)是什么&#xff1f; 用户的请求平摊的分配到多个服务上&#xff0c;从而达到系统的HA&#xff08;高可用&#xff09; 三&#xff1a;负载均衡分类&#xf…

Android Studio(控件常用属性)

通用属性 属性描述android:id用于为视图指定唯一的标识符。android:layout_width用于指定视图的宽度。android:layout_height用于指定视图的高度。android:layout_margin用于指定视图周围的空白区域。android:layout_padding用于指定视图内部的填充区域。android:background用…

思维模型 锚定效应

本系列文章 主要是 分享 思维模型&#xff0c;涉及各个领域&#xff0c;重在提升认知。先入为主&#xff0c;决策易偏。 1 锚定效应的应用 1.1 定价策略中的锚定效应 黑珍珠的定价策略&#xff1a;在 20 世纪 70 年代&#xff0c;黑珍珠被视为一种廉价的珠宝。然而&#xff…

[算法日志]图论: 广度优先搜索(BFS)

[算法日志]图论&#xff1a; 广度优先搜索(BFS) 广度优先概论 ​ 广度优先遍历也是一种常用的遍历图的算法策略&#xff0c;其思想是将本节点相关联的节点都遍历一遍后才切换到相关联节点重复本操作。这种遍历方式类似于对二叉树节点的层序遍历&#xff0c;即先遍历完子节点后…

STM32存储左右互搏 SPI总线读写FLASH W25QXX

STM32存储左右互搏 SPI总线读写FLASH W25QXX FLASH是常用的一种非易失存储单元&#xff0c;W25QXX系列Flash有不同容量的型号&#xff0c;如W25Q64的容量为64Mbit&#xff0c;也就是8MByte。这里介绍STM32CUBEIDE开发平台HAL库操作W25Q各型号FLASH的例程。 W25QXX介绍 W25QX…

【java】实现自定义注解校验——方法一

自定义注解校验的实现步骤&#xff1a; 1.创建注解类&#xff0c;编写校验注解&#xff0c;即类似NotEmpty注解 2.编写自定义校验的逻辑实体类&#xff0c;编写具体的校验逻辑。(这个类可以实现ConstraintValidator这个接口&#xff0c;让注解用来校验) 3.开启使用自定义注解进…

linux日志

1.日志介绍 linux日志是linux最重要的系统信息文件&#xff0c;其记录了系统发生的各类信息&#xff0c;例如&#xff1a;用户登录信息、系统启动信息、系统安全信息、相关服务信息等等。 2.日志说明 2.1.日志存放目录 linux日志记录存放目录路径&#xff1a;/var/log [ro…

【深度学习】Yolov8 区域计数

git&#xff1a;https://github.com/ultralytics/ultralytics/blob/main/examples/YOLOv8-Region-Counter/readme.md 很长时间没有做yolov的项目了&#xff0c;最近一看yolov8有一个区域计数的功能&#xff0c;不得不说很实用啊。 b站&#xff1a;https://www.bilibili.com/vid…

【qemu逃逸】HWS2017-FastCP

前言 虚拟机用户名&#xff1a;root 虚拟机密码&#xff1a;无密码 本题有符号&#xff0c;所以对于设备定位啥的就不多说了&#xff0c;直接逆向设备吧。 设备逆向 在 realize 函数中设置一个时钟任务&#xff0c;并且可以看到只注册了 mmio&#xff0c;大小为 0x100000。…

民宿酒店服务预约小程序的作用

民宿往往是旅游者们前往某个城市感受风情常住的地方&#xff0c;也因此在景区或特定地方&#xff0c;总是不乏大小民宿品牌&#xff0c;但除了市场高需求外&#xff0c;商家们所遇的痛点也不少&#xff1a; 1、获客引流难 民宿生意虽然需求量高&#xff0c;但各家品牌众多&am…

2000-2022年上市公司供应链数字化示范名单匹配数据

2000-2022年上市公司供应链数字化示范名单匹配数据 1、时间&#xff1a;2000-2022年 2、来源&#xff1a;商务部 3、指标&#xff1a; 上市公司供应链数字化&#xff08;根据城市名单匹配&#xff09;&#xff1a;股票代码、年份、股票简称、中文全称、省份、城市、区县、上…

祝贺璞华大数据产品入选中国信通院“铸基计划”

武汉璞华大数据技术有限公司HawkEye设备数字化管理平台产品&#xff0c;凭借优秀的产品技术能力&#xff0c;通过评估后&#xff0c;入选中国信通院“铸基计划”《高质量数字化转型产品及服务全景图(2023&#xff09;》的工业数字化领域。 “铸基计划”是中国信通院推出的高质量…

leetcode_2586 统计范围元音字符串

1. 题意 元音字符串是首尾都是元音字母的字符串。 给字符数组&#xff0c;让你找出指定范围内的元音字符串的个数。 统计范围元音字符串 2. 题解 直接模拟即可 class Solution { public:int vowelStrings(vector<string>& words, int left, int right) {unordere…

【Linux网络编程_TCP/UDP_字节序_套接字 实现: FTP 项目_局域网聊天项目 (已开源) 】.md updata:23/11/05

文章目录 TCP/UDP对比端口号作用字节序字节序转换api套接字 socket实现网络通讯服务端 逻辑思路demo&#xff1a; 满血版双方通讯/残血版多方通讯 &#xff08;配合进程实现&#xff09;服务端 demo客户端 demo FTP 项目实现sever demo:client demo: 局域网多方通讯 &#xff0…