对HashMap的value做升序、降序

java 复制代码
public class MapUtils {

    // Map的value值降序排序
    public static <K, V extends Comparable<? super V>> Map<K, V> sortDescend(Map<K, V> map) {
        List<Map.Entry<K, V>> list = new ArrayList<>(map.entrySet());
        list.sort((o1, o2) -> {
            int compare = (o1.getValue()).compareTo(o2.getValue());
            return -compare;
        });

        Map<K, V> returnMap = new LinkedHashMap<>();
        for (Map.Entry<K, V> entry : list) {
            returnMap.put(entry.getKey(), entry.getValue());
        }
        return returnMap;
    }

    // Map的value值升序排序
    public static <K, V extends Comparable<? super V>> Map<K, V> sortAscend(Map<K, V> map) {
        List<Map.Entry<K, V>> list = new ArrayList<>(map.entrySet());
        list.sort(Map.Entry.comparingByValue());

        Map<K, V> returnMap = new LinkedHashMap<>();
        for (Map.Entry<K, V> entry : list) {
            returnMap.put(entry.getKey(), entry.getValue());
        }
        return returnMap;
    }

}

因为结果要求是有序的,所以返回的类型必须是LinkedHashMap

相关推荐
py有趣12 分钟前
LeetCode算法学习之移除元素
java·数据结构·算法
旺仔小拳头..2 小时前
Maven相关
java·maven
要一起看日出2 小时前
数据结构---------红黑树
java·数据结构·红黑树
程序定小飞2 小时前
基于springboot的民宿在线预定平台开发与设计
java·开发语言·spring boot·后端·spring
FREE技术2 小时前
山区农产品售卖系统
java·spring boot
星光一影3 小时前
Java医院管理系统HIS源码带小程序和安装教程
java·开发语言·小程序
YA3333 小时前
java设计模式七、代理模式
java·设计模式·代理模式
helloworddm4 小时前
Orleans 自定义二进制协议在 TCP 上层实现的完整过程
java·网络协议·tcp/ip
超级大只老咪4 小时前
蓝桥杯知识点大纲(JavaC组)
java·算法·蓝桥杯