map根据值排序

发布时间 2023-12-19 10:27:54作者: 悠然886
public static Map<String, Integer> sortMap(Map<String, Integer> map) {
        //利用Map的entrySet方法,转化为list进行排序
        List<Map.Entry<String, Integer>> entryList = new ArrayList<Map.Entry<String, Integer>>(map.entrySet());
        //利用Collections的sort方法对list排序
        Collections.sort(entryList, new Comparator<Map.Entry<String, Integer>>() {
            @Override
            public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
                //正序排列,倒序反过来
                return o2.getValue() - o1.getValue();
            }
        });
        //遍历排序好的list,一定要放进LinkedHashMap,因为只有LinkedHashMap是根据插入顺序进行存储
        LinkedHashMap<String, Integer> linkedHashMap = new LinkedHashMap<String, Integer>();
        for (Map.Entry<String,Integer> e : entryList ) {
            linkedHashMap.put(e.getKey(), e.getValue());
        }
        return linkedHashMap;
    }

{A-1,V-2,D-8,B-1}

{A-1,B-1,V-2,D-8}

来源:https://blog.csdn.net/m0_67391270/article/details/126435013