黑马程序员技术交流社区
标题:
遇到一个问题卡了很久,求问map集合中排序的问题。
[打印本页]
作者:
zippo
时间:
2014-8-2 20:01
标题:
遇到一个问题卡了很久,求问map集合中排序的问题。
本帖最后由 zippo 于 2014-8-2 22:47 编辑
求问map集合中如何运用比较器对value的值进行排序呢?
作者:
icris
时间:
2014-8-2 20:24
本帖最后由 icris 于 2014-8-2 20:40 编辑
public static void main(String[] args) {
final HashMap<String, Integer> map = new HashMap<String, Integer>();
map.put("a", 2);
map.put("b", 1);
map.put("c", 1);
System.out.println(map);
TreeMap<String, Integer> treeMap = sortByValue(map);
System.out.println(treeMap);
}
private static TreeMap<String, Integer> sortByValue(
final HashMap<String, Integer> map) {
TreeMap<String, Integer> treeMap = new TreeMap<String, Integer>(
new Comparator<String>() {
public int compare(String o1, String o2) {
Integer i1 = map.get(o1);
Integer i2 = map.get(o2);
if (!i1.equals(i2))
return i1.compareTo(i2);
return o1.compareTo(o2);
}
});
treeMap.putAll(map);
return treeMap;
}
复制代码
一个小测试,像这样把要排序的 map 传进来就行了吧,泛型按需要改一下
update:修改了一个错误
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2