您的位置:首页 > 其它

HashMap的两种排序方式

2011-12-22 16:28 323 查看
Map<String, Integer> map = new HashMap<String, Integer>();

map.put("d", 2);

map.put("c", 1);

map.put("b", 1);

map.put("a", 3);

List<Map.Entry<String, Integer>> infoIds =

new ArrayList<Map.Entry<String, Integer>>(map.entrySet());

//排序前

for (int i = 0; i < infoIds.size(); i++) {

String id = infoIds.get(i).toString();

System.out.println(id);

}

//d 2

//c 1

//b 1

//a 3

//排序

Collections.sort(infoIds, new Comparator<Map.Entry<String, Integer>>() {

public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {

//return (o2.getValue() - o1.getValue());

return (o1.getKey()).toString().compareTo(o2.getKey());

}

});

//排序后

for (int i = 0; i < infoIds.size(); i++) {

String id = infoIds.get(i).toString();

System.out.println(id);

}

//根据key排序

//a 3

//b 1

//c 1

//d 2

//根据value排序

//a 3

//d 2

//b 1

//c 1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: