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

28 篇文章 1 订阅
@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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值