Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数组中的Java计数出现次数_Java_Arrays_Sorting - Fatal编程技术网

数组中的Java计数出现次数

数组中的Java计数出现次数,java,arrays,sorting,Java,Arrays,Sorting,我试图计算整数数组中出现的次数,并返回每个数字的显示次数。我的代码计算正确的发生次数,但它会多次显示它们 以下是相关代码: int num=input.nextInt(); 整数计数=0; int[]整数=新的int[num]; for(int i=0;i

我试图计算整数数组中出现的次数,并返回每个数字的显示次数。我的代码计算正确的发生次数,但它会多次显示它们

以下是相关代码:

int num=input.nextInt();
整数计数=0;
int[]整数=新的int[num];
for(int i=0;i

问题是,如果一个数字出现多次,它会多次显示该数字。例如,{1,2,2,3}将打印“2发生2次”两次。我理解为什么会发生这种情况,但我想知道是否有一种简单的方法可以确保这些语句只打印一次。

您的问题是打印语句。在每次迭代中调用print。相反,您可以将该计数值存储在映射中:

1 -> 1
2 -> 2
3 -> 1
其中,
是正在计算的整数值,
是它在数组中出现的次数。最后,您可以打印地图:

for(int key : map.keySet()) {
    int value = map.get(key);
    System.out.println(key + " occurs "+value+" times.");
}

您可以在这里找到更优雅的解决方案[]

,而无需使用Map: 如果您输入的数字将在1-50之间 那么我的方法就行了

int a[]=new int[51];
        int b[]={4,7,8,5,4,50,5,5,4,44};
        for(int c:b){
            a[c]++;
        }
        for(int c:b){
            if(a[c]!=-1){
                System.out.println("value: "+c+" "+"count"+ a[c]);
            }
            a[c]=-1;
        }

您可以随时将其转换为列表,并使用工具为您完成此项工作!看看这个答案,它实际上可以回答你的问题。好吧,你应该忽略你已经计算过的任何数字。然而,如果你退一步,你会意识到你想要的是一个数字到它的计数的映射。要使用关键字:您需要一个频率映射(也称为基数映射)。查一下,然后从那里开始工作:)谢谢,我会研究这个!问题是“在数组中计算发生次数”。我的建议是将其转换为列表,并查看链接,该链接与已回答的问题相同。这应该是评论,而不是答案。如果这是一个重复的问题,那么就这样做和/或留下评论,一旦你足够。如果问题不是重复的,则根据具体问题定制答案。