我有一个 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条经验 获得超4个赞
尝试这个:
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
}
添加回答
举报
0/150
提交
取消