对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

相关推荐
rlpp1 分钟前
FrankenPHP实践
java
小灵不想卷1 分钟前
LangChain4j 与 SpringBoot 整合
java·后端·langchain4j
Zachery Pole6 分钟前
JAVA_07_面向对象
java·开发语言
shalou29016 分钟前
mysql-connector-java 和 mysql-connector-j的区别
android·java·mysql
lipiaoshuigood7 分钟前
Linux下启动redis
java
dc_00127 分钟前
Java进阶——IO 流
java·开发语言·python
a11177617 分钟前
Live2D 虚拟主播软件(开源Python)
java·linux·运维
me83220 分钟前
【Java面试】Java核心关键字解析(static_final_访问修饰符)小白易懂
java·开发语言·面试
小飞学编程...23 分钟前
【Java相关八股文(一)】
android·java·开发语言
毅炼30 分钟前
Java 基础常见问题总结(5)
java·后端