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());
}

注意手法。

相关推荐
Rabitebla2 小时前
vector 的骨架:三根指针、模板陷阱与迭代器失效的第一现场
开发语言·数据结构·c++·算法
时空系2 小时前
第7篇:功能——打造你的工具箱 Rust中文编程
开发语言·网络·rust
薪火铺子2 小时前
Spring Security 6.x 实战指南
java·后端·spring
csbysj20202 小时前
CSS !important:深度解析与最佳实践
开发语言
善恶怪客2 小时前
Java-数据类型
java
初心未改HD2 小时前
Go语言测试与Benchmark:测试驱动开发的实践指南
开发语言·golang
学习3人组2 小时前
Mes全连路架构图
java·erp
chxii2 小时前
lua流程控制语句和table(表)数据结构
开发语言·junit·lua
上弦月-编程2 小时前
C语言指针从入门到实战
java·jvm·算法