TreeMap默认实现只能根据key来排序,或者定义treeMap的时候new Comparator,自定义key排序的方法,但是不能按照value进行排序。
可以使用下面的方法,对value进行一次排序。
Map<String,Integer> map = new TreeMap<String,Integer>();
List<Map.Entry<String,Integer>> list = new ArrayList<Map.Entry<String,Integer>>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
@Override
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
return o1.getValue() - o2.getValue();
}
});