基本思想:
1.把要排序的map的用entrySet方法把map.entry取出来,放入一个List中
2.用Collentions类里面的sort方法对一个这个list进行排序
3.这个list里面已经有序了,我们可以遍历这个list里面的元素map.entry得到我们想要的结果
我们看一下Collections的sort方法:
public static <T> void sort(List<T> listComparator<? super T> c)
参数:list
- 要排序的列表。c
- 确定列表顺序的比较器。null 值指示应该使用元素的自然顺序。
下面是一个例子:
public static List<Map.Entry<Character, Integer>> sortByValue(Map<Character, Integer> map) { List<Map.Entry<Character, Integer>> list = new ArrayList<Map.Entry<Character, Integer>>( map.entrySet()); //第一步 Collections.sort(list, new Comparator<Map.Entry<Character, Integer>>() { public int compare(Map.Entry<Character, Integer> o1, Map.Entry<Character, Integer> o2) { return (o1.getKey() - o2.getKey()); } }); return list; }