HashMap对key或value进行排序--Java--小白必懂2
- HashMap对key进行排序
public static void main (String[]args){
HashMap<String, Integer> map = new HashMap<>();
map.put("abd", 25);
map.put("abe", 85);
map.put("abf", 85);
//-----------对key进行排序
// 1---将hashmap的key转成数组,使用Arrays.sort()方法进行排序
Set set = map.keySet();
Object[] str = set.toArray();
Arrays.sort(str);
for (int i = 0; i < str.length; i++) {
System.out.println(str[i] + "-----" + map.get(str[i]));
}
// 1.1---使用Collections.sort()方法进行排序。该方法可以对list进行排序
Collection<String> keys = map.keySet();
List<String> list = new ArrayList<>(keys);
Collections.sort(list);
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i) + "-----" + map.get(list.get(i)));
}
}
- HashMap对value进行排序
//-----------对value进行排序共两步:1、转成list,第二使用List.sort(comparator)或Collections.sort(list,comparator)排序
// 虽然该方法能对key排序但是没法遍历key的值,所以一般是对value排序使用
public static List sortValueMap(HashMap<String,Integer> map){
// 1、转成list
List<Map.Entry<String,Integer>>lst=new ArrayList<>(map.entrySet());
// 2.1、排序Collections.sort(list,comparator)
Collections.sort(lst, new Comparator<Map.Entry<String, Integer>>() {
@Override
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
// return o2.getValue().compareTo(o1.getValue());
// return o2.getValue().compareTo(o1.getValue());// 对value排序
return o1.getKey().compareTo(o2.getKey()); // 对key排序
}
});
/* A.compareTo(B), 返回值是A-B, int值,共三种取值,正,负,零
负整数:当前对象的值(A) < 被比较对象的值(B) , 位置排在前
零:当前对象的值 = 比较对象的值 , 位置不变
正整数:当前对象的值(A) > 被比较对象的值(B) , 位置排在后
//2.2 List.sort(comparator)
lst.sort(new Comparator<Map.Entry<String, Integer>>() {
@Override
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
return o2.getValue().compareTo(o1.getValue());
}
});
*/
return lst;
}
HashMap对key或value进行排序--Java--小白必懂2的更多相关文章
- 深度剖析HashMap的数据存储实现原理(看完必懂篇)
深度剖析HashMap的数据存储实现原理(看完必懂篇) 具体的原理分析可以参考一下两篇文章,有透彻的分析! 参考资料: 1. https://www.jianshu.com/p/17177c12f84 ...
- 353 stars Java项目!Java小白必看!austin介绍 【第一话】
有好几个群友问我为什么最近更新变慢了.工作忙是一方面,另一方面是我更新文章的动力确实下降了.近大半年一直在更新的<对线面试官>系列,到现在已经40篇了. 说实话,当时我更新该系列有很大一部 ...
- 【Java】对Map按key和value分别排序
一.什么是Map? 在讲解Map排序之前,我们先来稍微了解下map. map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等. ...
- JAVA - 如果hashMap的key是一个自定义的类,怎么办?
JAVA - 如果hashMap的key是一个自定义的类,怎么办? 使用HashMap,如果key是自定义的类,就必须重写hashcode()和equals().
- Android 对Map按key和value分别排序
一.理论准备 Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等. TreeMap:基于红黑树(Red-Black tre ...
- 对Map按key和value分别排序
一.理论准备 Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等. TreeMap:基于红 ...
- Map集合利用比较器Comparator根据Key和Value的排序
TreeMap排序 根据Key进行排序 Map的根据key排序需要用到TreeMap对象,因为它是默认按照升序进行输出的,可以使用比较器compareTo对它进行降序排序,Comparator可以对集 ...
- 一个关于自定义类型作为HashMap的key的问题
在之前的项目需要用到以自定义类型作为HashMap的key,遇到一个问题:如果修改了已经存储在HashMap中的实例,会发生什么情况呢?用一段代码来试验: import java.util.HashM ...
- 不要使用Integer做HashMap的key,尤其在json序列化的时候
使用redisson cache来实现一个缓存功能,缓存省市县的名称,key是区域编码,integer,value是name.结果取的时候,怎么都取不出. Map<Integer, String ...
- 关于HashMap自定义key重写hashCode和equals的问题
使用HashMap,如果key是自定义的类,就必须重写hashcode()和equals() hashcode()和equals()都继承于object,在Object类中的定义为: equals( ...
随机推荐
- SpringBoot+Shiro+LayUI权限管理系统项目-7.实现用户管理
1.说明 只讲解关键部分,详细看源码,文章下方捐赠或QQ联系捐赠获取. 2.功能展示 包括用户增删改查和分配角色. 3.业务模型 @Data @EqualsAndHashCode(callSuper ...
- Failed to bind properties under ” to com.zaxxer.hikari.HikariDataSource
1.问题说明 今天配置spring boot多数据源,同时用到了oracle和postgresql,结果配置完毕后启动报这个错. 2.原因分析 忘记添加postgresql驱动了!!! 3.解决方案 ...
- 谁说docker-compose不能水平扩展容器、服务多实例?
❝ 虽说我已经从docker-compose走上了docker swarm的邪门歪道,目前被迫走在k8s这条康庄大道, 但是我还是喜欢docker-compose简洁有效的部署方式. ❞ 曾其何时 d ...
- python利用random模块随机生成MAC地址和IP地址
import random def randomMac(): macstring = "0123456789abcdef"*12 macstringlist=random. ...
- 使用GDI时如何确定是否有内存泄漏
在创建GDI对象时,比如创建笔,画刷等对象时,在调用完之后忘记删除对象了,会造成内存泄漏 我们可以通过任务管理器来快速的查看 启动任务管理器(右键单击Windows任务栏以选择任务管理器) 在Wind ...
- ASP.NET 读取FTP文件流
参考资料 ASP.NET 上传文件到共享文件夹 工具类代码 /// <summary> /// 读取ftp文件流 /// </summary> /// <param na ...
- 骚操作之 持有 ReadOnlySpan 数据
ReadOnlySpan<T> 可以说现在高性能操作的重要基石 其原理有兴趣的同学可以看 2018 的介绍Span<T>文章 其为了保障大家安全使用做了相应的限制 那么有没方法 ...
- 【Azure App Service for Windows】 PHP应用出现500 : The page cannot be displayed because an internal server error has occurred. 错误
问题描述 PHP应用突然遇见了500 The page cannot be displayed because an internal server error has occurred.错误,但是如 ...
- 【Azure 环境】IntelliJ IDEA Community Edition 2021.2.3登陆Azure账号时,无法切换到中国区
问题描述 在IntelliJ IDEA Community Edition 2021.2.3中开发Azure Function程序,最后准备部署到中国区 Azure Function中.如下,在Int ...
- 从真实案例出发,全方位解读 NebulaGraph 中的执行计划
本文整理自 NebulaGraph 核心开发 Yee 在直播<聊聊执行计划这件事>中的主题分享.分享视频参见 B站:https://www.bilibili.com/video/BV1Cu ...