Map排序
(一)treeHap
特点:treeMap中的元素根据键的大小自然排序(默认是升序)
1、treeHap遍历测试
import java.io.IOException;
import java.util.*;
public class Main {public static void main(String[] args)throws IOException {Map<String,Integer>map=new TreeMap<>();map.put("b",2);map.put("c",1);map.put("d",3);map.put("a",1);for(Map.Entry<String,Integer> entry:map.entrySet()){System.out.println(entry.getKey()+" "+entry.getValue());}}
}
输出:
a 1
b 2
c 1
d 3
2、自定义排序方式测试
自定义排序,选择value的大小作为比较依据。
import java.io.IOException;
import java.util.*;
public class Main {public static void main(String[] args)throws IOException {Map<String,Integer>map=new TreeMap<>();map.put("b",2);map.put("c",1);map.put("d",3);map.put("a",1);List<Map.Entry<String,Integer>>list=new ArrayList<>(map.entrySet());//排序之前System.out.println("排序之前:");for (int i = 0; i < list.size(); i++) {String key=list.get(i).getKey();int value=list.get(i).getValue();System.out.println(key+" "+value);}//排序list.sort(new Comparator<Map.Entry<String, Integer>>() {@Overridepublic int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {return o1.getValue()-o2.getValue();//o1减o2是升序,反之是降序}});//排序之后System.out.println("排序之后:");for (int i = 0; i < list.size(); i++) {String key=list.get(i).getKey();int value=list.get(i).getValue();System.out.println(key+" "+value);}}
}
输出:
排序之前:
b 2
c 1
a 1
d 3
排序之后:
a 1
c 1
b 2
d 3
测试结果,先根据value大小进行升序排序,value相等则根据key排序。
(二)LinkedHashMap
(1)LinkedHashMap遍历测试
import java.io.IOException;
import java.util.*;
public class Main {public static void main(String[] args)throws IOException {Map<String,Integer>map=new LinkedHashMap<>();map.put("b",2);map.put("c",1);map.put("d",3);map.put("a",1);for(Map.Entry<String,Integer> entry:map.entrySet()){System.out.println(entry.getKey()+" "+entry.getValue());}}
}
输出:
b 2
c 1
d 3
a 1
(2)自定义排序测试
自定义排序,选择value的大小作为比较依据。
import java.io.IOException;
import java.util.*;
public class Main {public static void main(String[] args)throws IOException {Map<String,Integer>map=new LinkedHashMap<>();map.put("b",2);map.put("c",1);map.put("a",1);map.put("d",3);List<Map.Entry<String,Integer>>list=new ArrayList<>(map.entrySet());//排序之前System.out.println("排序之前:");for (int i = 0; i < list.size(); i++) {String key=list.get(i).getKey();int value=list.get(i).getValue();System.out.println(key+" "+value);}//排序list.sort(new Comparator<Map.Entry<String, Integer>>() {@Overridepublic int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {return o1.getValue()-o2.getValue();//o1减o2是升序,反之是降序}});//排序之后System.out.println("排序之后:");for (int i = 0; i < list.size(); i++) {String key=list.get(i).getKey();int value=list.get(i).getValue();System.out.println(key+" "+value);}}
}
输出:
排序之前:
b 2
c 1
a 1
d 3
排序之后:
c 1
a 1
b 2
d 3
测试结果是,先根据value大小进行升序排序,value相等则根据元素的添加先后顺序排序。
(三)小结
- TreeMap可以实现根据key的大小自动进行升序排序。对其按照value的大小实现自定义排序时,会先先根据value的大小进行排序,value相等则根据key的大小排序
- LinkedHashMap中的元素会自动按照添加的先后顺序进行排序。对其按照value的大小实现自定义排序时,会先先根据value的大小进行排序,value相等则根据元素的添加先后顺序排序
补充:HashMap中的元素是无序的(不按照添加顺序输出,也不按照key的自然排序输出)。
相关文章:
Map排序
(一)treeHap 特点:treeMap中的元素根据键的大小自然排序(默认是升序) 1、treeHap遍历测试 import java.io.IOException; import java.util.*; public class Main {public static void main(String[] args)throws IOException {…...
mycat读写分离
1.准备工作 tar包 http://dl.mycat.org.cn/2.0/install-template/mycat2-install-template-1.20.zip jar包 http://dl.mycat.org.cn/2.0/1.21-release/ (下载最新的jar包) 将下载好的jar放到tar中的lib目录下并放入linux系统中 2.创建逻辑库 连接mycat端口8066 账号root 密码12…...

[Linux]环境变量
目录 基本概念 常见的环境变量 PATH测试 HOME测试 SHELL测试 和环境变量相关的命令 main函数的三个参数 环境变量的组织方式 通过代码如何获取环境变量 通过系统调用获取或设置环境变量 基本概念 环境变量(environment variables)一般是指在操作系统中用来指定操作系…...

次优二叉查找树(次优查找树)_递归和非递归实现_20230414
次优二叉查找树(次优查找树)-递归和非递归实现 前言 当有序表中的各记录的查找概率相等的时候,采用折半查找效率可以提升查找性能;如果有序表中的各记录的查找概率不相等,那么折半查找就不再适用。 如果只考虑查找成功的情况&a…...

贯穿设计模式第八话--设计原则总结篇
🥳🥳🥳 茫茫人海千千万万,感谢这一刻你看到了我的文章,感谢观赏,大家好呀,我是最爱吃鱼罐头,大家可以叫鱼罐头呦~🥳🥳🥳 从今天开始,将…...
地理信息系统(ArcGIS)在水文水资源、水环境中的实践技术应用及案例分析
目录 专题一 ArcGIS:数据管理 专题二 ArcGIS:数据转换 专题三 ArcGIS:地图制作 专题四 水文水环境数据编辑与管理 专题五 水文水环境数据处理与分析 专题六 ArcGIS水文分析及流域特征提取 专题七 湖泊水库水环境监测及评价 专题八 河…...

部分国产水文水动力模型介绍
一、HydroMPM模型 1、模型介绍 2016年度自立项目HydroMPM系统开发与集成完成的洪水分析模拟软件等成果经权威专家鉴定整体达到国际领先水平,HydroMPM_FloodRisk入选国家防总《全国重点地区洪水风险图编制项目可选软件名录》。成果应用项目100余项,累计…...
HTTP请求
1、get请求工具类 public static String requestGet(String url) throws Exception { String strResult null; try { HttpClient httpsClient HttpsClient.getInstance(); HttpGet request new HttpGet(url); HttpResponse response http…...

网络威胁情报项目:为什么仍然很疯狂
大约五年前,向首席信息安全官( CISO)询问他们的网络威胁情报 (CTI) 计划时,得到了两种截然不同的回答。 资源丰富的大型企业正在投资他们的威胁情报计划,目的是为了战术、运营和战略目的更好地实施它。 规模较小、资…...
Linux系统下使用shell“多线程执行命令”
前言 在工作中常遇到如下场景: 系统未接入日志中心,系统本身使用集群部署,那么再查找日志的时候只能一台一台的去搜索关键字,后来运维同学发现这样一台一台效率太低了,于是有了升级版,升级之后的方式还是一…...

HighTec编译器错误记录
目录 1、HighTec安装后缺少Universal Debug Engine 2、HighTec工程改名后不能跳转函数定义,提示找不到定义。 3、HighTec工程重复编译 1、HighTec安装后缺少Universal Debug Engine 在HighTec安装后,没有调试UDE,重装系统后还是没有&#x…...
智慧校园大数据云平台(3)
技术详解 OTN技术OTN是以波分复用技术为基础、 在光层组织网络的传送网, 是下一代的骨干传送网。OTN是通过G.872、G.709、G.798等一系列ITU-T的建议所规范的新一代“数字传送体系”和“光传送体系”,将解决传统WDM网络无波长/子波长业务调度能力差、组网…...

《花雕学AI》15:BingGPT桌面端——尝鲜体验ChatGPT4.0同源技术新Bing的最新成果
引言: 本文将介绍 BingGPT桌面端的开发背景和目的,以及它与新 Bing 的关系和区别。本文还将说明BingGPT桌面端的主要功能和特点,以及如何下载、安装和使用。最后,本文将评价 BingGPT桌面端对于新 Bing 的人工智能聊天功能的推广和…...

反序列化漏洞及PHP魔法函数
目录 1、漏洞原理 2、序列化(以PHP语言为例) 3、反序列化 4、PHP魔法函数 (1)__wakeup() (2)__destruct() (3)__construct() (4)__toString() &…...

企业应用程序单点登录
企业每天都依赖于各种企业应用程序,包括云和本地应用程序。这意味着用户必须经常输入更多密码才能访问这些应用程序并完成他们的工作。为了提高用户的工作效率、减少密码疲劳并使身份管理更有效,您的组织需要部署高效的 SSO 解决方案。 AD360 提供企业 …...
前馈PID控制(热交换器/反应釜温度控制)
如何利用PID进行温度控制请参看下面博客文章: 博途PID 1200/1500PLC PID_Compact比例作用权重b微分作用权重c解读(PI-D控制器 I-PD控制器)_RXXW_Dor的博客-CSDN博客很多人会问PLC自带的PID指令和我们自己设计的PID有什么区别,这个问题要看你和什么PID控制器作对比,PID负反…...

Nginx配置ssl证书实现https安全访问
目录 一、Nginx的安装与配置 安装步骤 二、SSL证书获取 三、Nginx配置 前题条件,拥有服务器与可以解析到该服务器的自己的域名。 一、Nginx的安装与配置 若已安装好了Nginx,则需查看自己的Nginx是否开启了SSL的模块功能: ./nginx -V 显…...

大学生必备神器
大学生要掌握的办公软件因专业和工作需求而异,但是以下是一些普遍适用于大学生的办公软件,可以帮助提高学习和工作效率,今天就给大家推荐几款大学生常用的软件。 1.OneDrive 这是微软出品的云存储产品,与百度网盘有些类似&#…...

【MyBatis Plus】004 -- MyBatis Plus高级(AR、MP插件、自定义全局操作、自动填充、逻辑删除、枚举、代码生成器)
目录 1、ActiveRecord 1.1 开启AR之旅(根据主键 id 进行查询) 1.2 新增数据 1.3 更新操作 1.4 删除操作 1.5 根据条件查询 2、Oracle 主键 Sequence 2.1 部署Oracle环境 2.2 创建表以及序列 2.3 jdbc驱动包 2.4 修改application.properties 2.5 配置序列…...

3年外包终上岸,我只能说:但凡有点机会,千万别去外包...
我大学学的是计算机专业,毕业的时候,对于找工作比较迷茫,也不知道当时怎么想的,一头就扎进了一家外包公司的软件测试岗,一干就是3年。现在终于跳槽到了互联网公司了,我想说的是,但凡有点机会&am…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...

【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

mac 安装homebrew (nvm 及git)
mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...
LangFlow技术架构分析
🔧 LangFlow 的可视化技术栈 前端节点编辑器 底层框架:基于 (一个现代化的 React 节点绘图库) 功能: 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...
redis和redission的区别
Redis 和 Redisson 是两个密切相关但又本质不同的技术,它们扮演着完全不同的角色: Redis: 内存数据库/数据结构存储 本质: 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能: 提供丰…...