为了账号安全,请及时绑定邮箱和手机立即绑定

打印具有 5 个最高值的键

打印具有 5 个最高值的键

芜湖不芜 2022-11-10 16:56:02
我有一个 HashMap 定义为:Map<String, Double> data = new HashMap<String, Double>();我正在尝试打印出具有最高 Double 值的 5 个字符串。我尝试通过对每个循环运行 5 次并保存最高值来做到这一点,同时我将整个 HashMap 迭代 5 次,但在 if 语句中出现空指针异常错误。int highest = 0;String highestkey; for(int i=0; i<5; i++){     for(Map.Entry<String, Double> x : data.entrySet()){        if(data.get(x) > highest){           highestkey = x.getKey();        }     }     System.out.println(highestkey);     info_words.remove(highestkey);  }我的代码应该做的是在解析 HashMap 时跟踪最高的 Double 值,然后最终打印最高的键,然后将其删除,因此没有重复,然后再重复该过程 4 次,但它不能作为故意的
查看完整描述

1 回答

?
Helenr

TA贡献1780条经验 获得超3个赞

尝试这个:


        Double highest = 0.0;

        String highestkey = "";


        for (int i = 0; i < 5; i++) {

            for (Map.Entry<String, Double> x : data.entrySet()) {

                if (x.getValue() > highest) {

                    highest = x.getValue();

                    highestkey = x.getKey();

                }

            }

            System.out.println(highestkey);

            //remove highest here

        }


查看完整回答
反对 回复 2022-11-10
  • 1 回答
  • 0 关注
  • 51 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信