怎样对map的key和value分别排序

ocaicai 2010-05-31 07:08:07

怎样对map的key和value分别排序啊

我想对Map进行value排序。
如:
排序前为:[("b",1),("a",3),("c",2)]
排序后为:[("b",1),("c",2),("a",3)]
我想对Map进行key排序。
如:
排序前为:[("b",1),("a",3),("c",2)]
排序后为:[("a",3),("b",1),("c",2)]

谢谢大家的踊跃帮助哈
...全文
307 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ocaicai 2010-05-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bao110908 的回复:]
TreeMap 使用比较器进行构造
[/Quote]
帅哥,可以代码一下吗?我一直很欣赏你的代码!
若鱼1919 2010-05-31
  • 打赏
  • 举报
回复

import java.util.*;
public class MapSort{
public static void main(String args[]){
Map<String,Integer> map=new HashMap<String,Integer>();
map.put("b",1);map.put("a",3);map.put("c",2);
List<Map.Entry<String,Integer>> list = new ArrayList<Map.Entry<String,Integer>>(map.entrySet());
Collections.sort(list, new KeyComparator());//这个是按照key排序
//Collections.sort(list, new ValueComparator());//这个是按照value排序
Iterator<Map.Entry<String,Integer>> i = list.iterator();
while (i.hasNext()) {
Map.Entry<String,Integer> entry = i.next();
System.out.println("key=" + entry.getKey() + ", value="+ entry.getValue());
}
}
}
class KeyComparator implements Comparator<Map.Entry<String,Integer>> {
public int compare(Map.Entry<String,Integer> o1,
Map.Entry<String,Integer> o2) {
return o1.getKey().compareTo(o2.getKey());
}
}
class ValueComparator implements Comparator<Map.Entry<String,Integer>> {
public int compare(Map.Entry<String,Integer> o1,
Map.Entry<String,Integer> o2) {
return o1.getValue().intValue() - o2.getValue().intValue();
}
}
  • 打赏
  • 举报
回复
TreeMap 使用比较器进行构造

50,527

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧