对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

相关推荐
带刺的坐椅1 分钟前
带来 Multi Agent 开发,OpenSolon v3.8.3 发布
java·ai·agent·solon·mcp
期待のcode2 分钟前
垃圾回收的停顿
java·开发语言·jvm
qq_12498707534 分钟前
基于微信小程序的照片社交平台(源码+论文+部署+安装)
java·大数据·微信小程序·小程序·毕业设计·计算机毕业设计
郑州光合科技余经理10 分钟前
中台架构实战:同城O2O系统二次开发与部署指南
java·大数据·开发语言·前端·后端·架构·php
安卓理事人12 分钟前
鸿蒙中加密库使用
android·java·开发语言
SunnyDays101112 分钟前
Java 旋转 PDF 页面完整指南(含示例)
java·pdf·pdf页面旋转·旋转pdf页面
毕设源码-邱学长12 分钟前
【开题答辩全过程】以 闲置交易平台系统为例,包含答辩的问题和答案
java
二哈喇子!13 分钟前
IDEA如何导入jar包
java·intellij-idea·jar
爱吃山竹的大肚肚19 分钟前
Nginx 最核心和常用的命令
java·运维·服务器·前端·nginx
进阶小白猿21 分钟前
Java技术八股Day19
java·开发语言