对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

相关推荐
SimonKing1 分钟前
吊打面试官系列:Spring如何使用三级缓存解决循环依赖
java·后端·面试
天天摸鱼的java工程师8 分钟前
八年实战:分布式系统全局唯一 ID 生成方案全解析
java·后端·面试
chanalbert11 分钟前
Spring上下文模块设计
java·spring
论迹15 分钟前
【JavaEE】-- HTTPS
java·https·java-ee
天天摸鱼的java工程师16 分钟前
面试官灵魂拷问:如何设计一个支持 10 万 QPS 的秒杀系统?
java·后端·面试
无名之逆16 分钟前
Junior Year Self-Study Notes My Journey with the Hyperlane Framework
java·开发语言·前端·spring boot·后端·rust·编程
crud17 分钟前
Spring Boot 整合 Smart-Doc:零注解生成 API 文档,告别 Swagger
java·spring boot·swagger
-逐鹿中原18 分钟前
开源PSS解析器
java·测试用例
武子康25 分钟前
Java-43 深入浅出 Nginx - 基本配置方式 nginx.conf Events块 HTTP块 反向代理 负载均衡
java·后端·nginx·http·负载均衡·运维开发
界面开发小八哥27 分钟前
「Java EE开发指南」如何用MyEclipse创建一个WEB项目?(一)
java·ide·java-ee·eclipse·myeclipse