gpt4 book ai didi

java - 计算数组中数字的出现次数

转载 作者:行者123 更新时间:2023-12-01 06:56:07 25 4
gpt4 key购买 nike

我已经堆栈了一段时间了。我尝试调试但无法找出解决方案。我正在尝试计算数字的出现次数。所以我的问题是,当我打印输出时,它是

3 occurs 1 times
1 occurs 1 times
0 occurs 1 times
2 occurs 1 times
1 occurs 2 times
3 occurs 2 times
2 occurs 2 times
0 occurs 2 times
10 occurs 1 times
4 occurs 1 times

而不是

1 occurs 2 times
0 occurs 2 times
2 occurs 2 times
3 occurs 2 time
10 occurs 1 times
4 occurs 1 times

因此,如果该数字出现超过 1 次,则应该只说一次,而不是出现的次数。干杯这是代码

import java.util.*;

public class CountingOccuranceOfNumbers
{

public static void main(String[] args)
{
countNumbers();
}

public static void countNumbers()
{
Scanner input = new Scanner(System.in);
Random generator = new Random();
int[] list = new int[11];
int[] counts = new int[150];
int counter = 0;
int number = 1;


while(counter <= 10)
{
number = generator.nextInt(11);
list[counter] = number;
counter++;
}
for(int i=0; i<list.length - 1; i++)
{
counts[list[i]]++;
// System.out.print(list[i] + " ");

System.out.println(list[i] +" occurs " + counts[list[i]] + " times");
}

}

}

最佳答案

另一个选项是 guava 的 Multiset 类,它将为您跟踪计数:

int values[] = ...;
Multiset<Integer> ms = HashMultiset.create();
ms.addAll(Ints.asList(list));

int count0 = ms.count(Integer.valueOf(0));
int count1 = ms.count(Integer.valueOf(1));

这里,Multiset、HashMultiset 和 Ints 都是 guava 类。

请注意,Multiset 通过使用 Map 和计数器来跟踪计数器,几乎完成了上面提到的操作。它只是从您那里抽象出来,以使您的代码更简单。

关于java - 计算数组中数字的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11608515/

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