java中,将map中的元素按照value值大小排序

可以先将map中各元素存放在list中,再对list进行排序。list排序,利用Collections.sort()只要重写compare方法即可。

下面的代码实现按照value值的降序排列。

public static Map<String, Long> sortMap(Map<String, Long> oldMap) {  
        ArrayList<Map.Entry<String, Long>> list = new ArrayList<Map.Entry<String, Long>>(oldMap.entrySet());  
        Collections.sort(list, new Comparator<Map.Entry<String, Long>>() {  
 
            @Override  
            public int compare(Entry<java.lang.String, Long> arg0,  
                    Entry<java.lang.String, Long> arg1) {  
                return (int) (arg1.getValue() - arg0.getValue());  
            }  
        });  
        Map<String, Long> newMap = new LinkedHashMap<String, Long>();  
        for (int i = 0; i < list.size(); i++) {  
            newMap.put(list.get(i).getKey(), list.get(i).getValue());  
        }  
        return newMap;  
    } 

原文地址:https://www.cnblogs.com/xiaxiaoxuan/p/7053271.html