gpt4 book ai didi

java - 如何获得hashmap中的两个最大值

转载 作者:行者123 更新时间:2023-12-02 06:09:14 24 4
gpt4 key购买 nike

如何获得hashmap中的2个最大值?例如。我有集合{dara = 10, to =20, be =15, different = 10},如果我们手动统计第一个最大值是20,关键是to,第二个最大值是15,关键是be,根据至Finding Key associated with max Value in a Java Map我用:

 Map.Entry<String, Float> max1 = null;
Map.Entry<String, Float> max2 = null;

//searching the first biggest value
for(Map.Entry<String, Float> en : TFIDF.entrySet()){
if (max1 == null || en.getValue().compareTo(max1.getValue()) > 0){
max1 = en;
}
}
//searching the second biggest value
for(Map.Entry<String, Float> en : TFIDF.entrySet()){
if (max2 == null || en.getValue().compareTo(max2.getValue()) <= max1.getValue()){
max2 = en;
}
}

但在我与 max1 比较后,该值返回最小值。

最佳答案

如这段代码

 en.getValue().compareTo(max2.getValue()) <= max1.getValue())

当 max2 小于 max1 的值时始终为 true

我想你想要的是

if (max2 == null || en.getValue().compareTo(max2.getValue()) > 0 
&& en.getValue().compareTo(max1.getValue() < 0)) {
max2 = en;
}

以上将返回第二高的值。

关于java - 如何获得hashmap中的两个最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22035337/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com