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; }
本文来自博客园,作者:{Justin_Hu},转载请注明原文链接:{https://www.cnblogs.com/gchenghu/}
分类:
java成长日记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗