使用树映射按值降序排序

时间:2012-07-27 21:17:59

标签: java tree hashmap treemap

我只是在下面有一个地图实现来按降序对值进行排序,我使用了以下实现。

public static Map<String,Integer> sortByComparator(Map<String,Integer> unsortMap) {

    List list = new LinkedList(unsortMap.entrySet());

    //sort list based on comparator
    Collections.sort(list, new Comparator() {
        public int compare(Object o1, Object o2) {
            return ((Comparable) ((Map.Entry) (o2)).getValue())
                    .compareTo(((Map.Entry) (o1)).getValue());
        }
    });

    //put sorted list into map again
    Map sortedMap = new LinkedHashMap();
    for (Iterator it = list.iterator(); it.hasNext();) {
        Map.Entry entry = (Map.Entry)it.next();
        sortedMap.put(entry.getKey(), entry.getValue());
    }
    return sortedMap;
}   

这是必要的功能..但我很想知道我是否能够使用树形图按降序排序

2 个答案:

答案 0 :(得分:0)

您不会,因为TreeMap按键顺序排序,而您按值排序。

答案 1 :(得分:0)

不,Treemap排序顺序基于密钥。所有其他排序要求必须像您一样实施。