gpt4 book ai didi

java - 将映射到关联数组

转载 作者:行者123 更新时间:2023-12-01 14:21:04 25 4
gpt4 key购买 nike

我输入的int[]具有以下内容:

[5, 65, 22, 1, 58, 5, 69, 12, 1, 22, 22, 58, 12, 54, 89]

使用 Map<Object, AtomicInteger>,我将其转换为以下对象:
{1=2, 65=1, 5=2, 69=1, 22=3, 58=2, 12=1}

换句话说,我正在计算动态数组的重复元素。

现在,我需要找出最大和最小出现次数,而我确实陷入了进一步的步骤。

重复元素类的代码如下:
public Map<Object, AtomicInteger> countRepeatingElements(int[] inputArray) {
ConcurrentMap<Object, AtomicInteger> output =
new ConcurrentHashMap<Object, AtomicInteger>();

for (Object i : inputArray) {
output.putIfAbsent(i, new AtomicInteger(0));
output.get(i).incrementAndGet();
}

return output;
}

最佳答案

如果要查找最大和最小出现次数,请使用EntrySet遍历Map并比较每个键的值。

int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
for(Map.Entry<Object, AtomicInteger> entry : output.entrySet()){
if(entry.getValue().intValue() < min){
min = entry.getValue().intValue();
}
if(entry.getValue().intValue() > max){
max = entry.getValue().intValue();
}
// entry.getValue() gives you number of times number occurs
// entry.getKey() gives you the number itself
}

关于java - 将<Object,AtomicInteger>映射到关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61142793/

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