gpt4 book ai didi

java - 迭代并比较同一映射中的值以找到最大值并从同一映射中删除其他值

转载 作者:太空宇宙 更新时间:2023-11-04 14:53:08 25 4
gpt4 key购买 nike

我有

Map<Key,Integer> myMap= new HashMap<Key,Integer>();

假设我在 map 中有元素,例如,

 myMap.put(k1,5);
myMap.put(k2,20);
myMap.put(k3,10);
myMap.put(k4,15);

我应该尝试迭代和比较此映射中的值的代码,并且我想要具有最大值的映射元素,并且映射应该仅包含该元素。

最佳答案

简单的解决方案是使用并发 HashMap 。试试这个..

import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class Largest {

public static void main(String[] args) {
Map<Integer, Integer> myMap = new HashMap<Integer, Integer>();
myMap.put(1, 5);
myMap.put(2, 20);
myMap.put(3, 10);
myMap.put(4, 15);
myMap.put(5, 20);

System.out.println(myMap);

Map<Integer, Integer> concurrentMap = new ConcurrentHashMap<Integer, Integer>(myMap);

Integer maxKey = concurrentMap.keySet().iterator().next();
Integer max = myMap.get(maxKey);

for(Integer key : concurrentMap.keySet()){
Integer currValue = concurrentMap.get(key);
if(max > currValue){
concurrentMap.remove(key);
} else if(max < currValue) {
concurrentMap.remove(maxKey);
max = concurrentMap.get(key);
maxKey = key;
}
}

System.out.println(concurrentMap);
}

}

关于java - 迭代并比较同一映射中的值以找到最大值并从同一映射中删除其他值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23524852/

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