对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

相关推荐
weixin_441455261 天前
说说Java有哪些集合类
java·开发语言
合作小小程序员小小店1 天前
web网页开发,在线%台球俱乐部管理%系统,基于Idea,html,css,jQuery,jsp,java,ssm,mysql。
java·前端·jdk·intellij-idea·jquery·web
程序定小飞1 天前
基于springboot的作业管理系统设计与实现
java·开发语言·spring boot·后端·spring
晓庆的故事簿1 天前
windows下载和使用minio,结合java和vue上传文件
java·开发语言
程序员小假1 天前
我们来说一下 Mybatis 的缓存机制
java·后端
qq_336313931 天前
java基础-学生管理系统升级
java
弥巷1 天前
【Android】Android内存缓存LruCache与DiskLruCache的使用及实现原理
android·java
好好沉淀1 天前
Apache 工具包(commons-io commons-lang3 )保姆介绍
java·ide
毕设源码-邱学长1 天前
【开题答辩全过程】以 服装购物平台为例,包含答辩的问题和答案
java·eclipse