黑马程序员技术交流社区
标题:
map按值排序
[打印本页]
作者:
常帅
时间:
2011-7-18 10:59
标题:
map按值排序
应该通过entry,算法具体过程
作者:
杨志罡
时间:
2011-7-21 04:34
public static Map.Entry[] getSortedHashtableByValue(Map<String, Integer> map) {
//用一个Set 引用去接收 map.entrySet()返回的是装有Entry对象的集合;
Set set = map.entrySet();
//用 Map.Entry[]接收 set中的元素
Map.Entry[] entries = (Map.Entry[]) set.toArray(new Map.Entry[set.size()]);
//通过自定义的 Comparator比较器,对元素进行排序
Arrays.sort(entries, new Comparator() {
public int compare(Object arg0, Object arg1) {
Long key1 = Long.valueOf(((Map.Entry) arg0).getValue().toString());
Long key2 = Long.valueOf(((Map.Entry) arg1).getValue().toString());
return key1.compareTo(key2);
}
});
return entries;
}
[
本帖最后由 杨志罡 于 2011-07-21 04:35 编辑
]
作者:
匿名
时间:
2011-7-22 15:13
搞定了。MAP通过entrySet,获得的set通过ArrayList构造函数获得一个List,直接调用Collection的sort方法,比较器中用Map.entry接口的getValue()比较。手机上网,代码就算了
作者:
匿名
时间:
2011-7-22 15:16
谢谢二楼…
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2