黑马程序员技术交流社区
标题:
Map的值排序
[打印本页]
作者:
王亮
时间:
2011-7-19 12:46
标题:
Map的值排序
Map有key和value,我们可以实现按key排序,怎样实现按value排序?
作者:
匿名
时间:
2011-7-19 12:53
[url]http://blog.csdn.net/chjshan55/article/details/6153554[/url]
这个里面挺详细的
作者:
匿名
时间:
2011-7-19 17:51
[quote] 原帖由 [i]王亮[/i] 于 2011-07-19 12:46 发表 [url=http://bbs.itheima.com/redirect.jsp?goto=findpost&pid=3955&ptid=290][img]http://bbs.itheima.com/images/common/back.gif[/img][/url]Map有key和value,我们可以实现按key排序,怎样实现按value排序? [/quote]
时间紧迫,要回去煮饭了。你用“冒泡排序”试试,代码改天贴上
作者:
匿名
时间:
2011-7-20 17:26
标题:
回复 沙发 的帖子
谢谢你了,我最近查API找到了另外一个方法,将TreeMap的entrySet-->Object数组(toArray()方法)-->使用Arrays.sort()(确切的是<T> void sort(T[] a, Comparator<? super T> c)),本来应该用泛型的,但是老没有试成功,就没有使用直接使用Object。
Object[] t= treeMap.entrySet().toArray();
Arrays.sort(t,
new Comparator() {
@Override
public int compare(Object o1, Object o2) {
// TODO Auto-generated method stub
return ((Map.Entry<Character, Integer>)o1).getValue()-((Map.Entry<Character, Integer>)o2).getValue();
}
});
StringBuffer sb = new StringBuffer();
for(int i=0;i<t.length;i++){
sb.append(((Map.Entry<Character,Integer>)t[i]).getKey()+" : "+((Map.Entry<Character,Integer>)t[i]).getValue()+",");
}
sb.deleteCharAt(sb.length()-1);
return sb.toString();
不知能否进一部改进?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2