对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

相关推荐
jing-ya12 分钟前
day 59 图论part10
java·开发语言·数据结构·算法·图论
短剑重铸之日23 分钟前
《ShardingSphere解读》16 改写引擎:如何理解装饰器模式下的 SQL 改写实现机制?
java·数据库·后端·sql·shardingsphere·分库分表·装饰器模式
q54314708728 分钟前
VScode 开发 Springboot 程序
java·spring boot·后端
小涛不学习37 分钟前
Java高频面试题(带答案版)
java·开发语言
big_rabbit050237 分钟前
JVM堆内存查看命令
java·linux·算法
学习要积极1 小时前
Springboot图片验证码-EasyCaptcha
java·spring boot·后端
李少兄1 小时前
企业资源计划(ERP)系统全景指南
java·前端·数据库·erp
波波七1 小时前
SSM与Springboot是什么关系? -----区别与联系
java·spring boot·后端
myloveasuka1 小时前
[Java]单列集合
android·java·开发语言
ok_hahaha1 小时前
java从头开始-黑马点评-基础篇
java·开发语言