hashmap通过value排序

 /**
     * java 8 version  按value排序
     *
     * @param map  待排序的map
     * @param isDesc 是否降序,true:降序,false:升序
     * @param limit 取前几条
     * @return 已排序map
     */
    public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue(Map<K, V> map, boolean isDesc, int limit) {
        Map<K, V> result = new LinkedHashMap<>();
        if (isDesc) {
            map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByValue().reversed()).limit(limit)
                    .forEach(e -> result.put(e.getKey(), e.getValue()));
        } else {
            map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByValue()).limit(limit)
                    .forEachOrdered(e -> result.put(e.getKey(), e.getValue()));
        }
        return result;
    }

 

posted @ 2020-08-25 10:42  冒蓝火的哒哒哒  阅读(179)  评论(0)    收藏  举报