您的位置:首页 > 编程语言 > Java开发

java hashmap 按键或者按值(升降)排序

2017-10-17 09:52 405 查看
@Test
//hashMap 通过value值排序
public  void Test6() {
//把Integer变为String就可以进行value为String的升降排序
Map<String, Integer> map = new HashMap<String, Integer>();
/* map.put("c", "aaaaa");
map.put("a", "ccccc");
map.put("b", "bbbbb");
map.put("d", "ddddd");*/
map.put("c", 5);
map.put("a", 6);
map.put("b", 2);
map.put("d", 4);
System.out.println(map.entrySet());
List<Map.Entry<String,Integer>> list = new ArrayList<Map.Entry<String,Integer>>(map.entrySet());
System.out.println(list);
Collections.sort(list,new Comparator<Map.Entry<String,Integer>>() {

@Override
//升序排序
public int compare(Entry<String, Integer> o1,
Entry<String, Integer> o2) {
// TODO Auto-generated method stub
return o1.getValue().compareTo(o2.getValue());//把o1和o2互换就变为了降序排序 ,把getValue变为getKey就是key值的升降排序了
}
});

for(Map.Entry<String,Integer> mapping:list){
System.out.println(mapping.getKey()+":"+mapping.getValue());
}
}


结果:

[a=6, b=2, c=5, d=4]
[a=6, b=2, c=5, d=4]
b:2
d:4
c:5
a:6
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: