java根据键值对中值的大小进行排序的手法。

复制代码
程序:随机产生50个红(red)、绿(green)、蓝(blu)色块,统计其个数,并按个数多少,从大到小排序。
String[] color={"red","green","blue"};
List<String> lst = new ArrayList<>();
for (int i = 0; i < 50; i++) {
    lst.add(color[(int)(Math.random()*3)]);
}
HashMap<String,Integer> hm=new HashMap<>();
for (String str : lst) {
    hm.put(str,hm.getOrDefault(str,0)+1);
}
ArrayList<Map.Entry<String, Integer>> etys = new ArrayList<>(hm.entrySet());
etys.sort(new Comparator<Map.Entry<String, Integer>>() {
    @Override
    public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
        return o2.getValue()-o1.getValue();
    }
});
for (Map.Entry<String, Integer> ety : etys) {
    System.out.println(ety.getkey());
    System.out.println(ety.getvalue());
}

注意手法。

相关推荐
XIAEE2 小时前
ES6 与 Node.js 群侠传:那些年我们追过的语法,和那些年把我们追杀的 API
java·spring
XIAEE2 小时前
WebRTC 探险记:我是如何让两个浏览器"看对眼"的
java·spring
XIAEE2 小时前
UniApp 本地打包通关记:Android 是地狱难度,iOS 是隐藏 BOSS
java·spring
程序喵大人2 小时前
【C++入门】编译链接模型 - 07 链接器怎样把符号对上号
开发语言·c++·编译器·编译链接·链接器
高晶2 小时前
Android 物联网组网实战:NFC 从零到落地
android·java
Dreamboat-L2 小时前
日志级别基础 + Spring Boot 日志实践指南
java·服务器·数据库·java-ee·springboot
啵啵啵鱼2 小时前
第二章 线性表
java·数据结构·算法
微三云 - 廖会灵 (私域系统开发)2 小时前
供应链系统实战:多渠道订单聚合与分布式库存一致性方案总结
开发语言·分布式·php
深入云栈2 小时前
Netty 4.2.x 源码深度解析 (十九):ChannelPool 连接池 —— 连接复用与资源管理
java·后端·架构
用户094248568032 小时前
第38章:从零构建JVM稳定性平台最小闭环
java·jvm