Java Map按照值降序排列

代码如下:

Map<String,Double> map = new HashMap<>();

map.put("设备形态",0d);
map.put("参考单价(元)",2d);
map.put("适用装备分类名称",30d);
map.put("适用装备名称",1d);
map.put("管理部门",6d);

//对map集合,降序排序
List<Map.Entry<String,Double>> list = new ArrayList(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String,Double>>(){
    public int compare(Map.Entry<String,Double> a, Map.Entry<String,Double> b) {
        Double res = b.getValue() - a.getValue();
        //如果b=a,返回0
        if(res==0){
            return 0;
        }
        //如果b>a,返回1
        else if(res>0){
            return 1;
        }
        //如果b<a,返回-1
        else{
            return -1;
        }
    }
});

// 只有 LinkedHashMap在存储时会按照写入的顺序来
Map<String,Double> resMap = new LinkedHashMap<>();
for(Map.Entry<String,Double> item : list){
    resMap.put(item.getKey(), item.getValue());
}

Iterator<Map.Entry<String,Double>> iterator = resMap.entrySet().iterator();
int count  = 0;
//由大到小,取前3个
while(iterator.hasNext()) {
   if(count == 3){
        break;
   }

   Map.Entry<String,Double> entry = iterator.next();

  System.out.println(entry.getKey());
  System.out.println(entry.getValue());

  count++;
}

参考:Java map按照值降序排列_打破砂锅问到底007的博客-CSDN博客_map降序排列

Java Map集合 键值 排序_java map集合排序_LiJiangTao_DEV的博客-CSDN博客

java中map集合遍历的五种方式_云庄clouder的博客-CSDN博客_jdk1.8遍历map

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值