如何计算数组元素的出现次数

时间:2019-03-26 16:18:33

标签: java arrays

我需要计算两个不同数组中每个符号的出现次数,并创建一个新的数组来保存这些出现次数。我不知道从哪里开始。

我给了3个数组以开始:

char[] symbols = {'0','1','2','3','4','5','6'};
char[] hiddenCode = {'1','2','3','4'};
char[] guess = {'1','1','4','4'};

实际说明如下:

计算hiddencode中每个符号的数目,并分别计算猜测中每个symbol的数目。对于每个symbol,请确定symbol中该hiddenCode的数量和在symbol中所发现的guess的数量的最小值。命中总数(黑白)是所有symbols的最小值的总和。

建议:

要进行计数,请创建一个长度为symbols的整数数组。对于每个symbol,请使用您编写的indexOf方法来确定数组中的索引以增加符号计数。

这就是我得到的/拥有的:

public static int countAllHits(char[] hiddenCode, char[] guess, char[] symbols) {
int hits = 0;
int [] arrayCount = new int[symbols.length];
return hits; 
}

我已经为此程序编写了一个indexOf方法,该方法返回指定字符首次出现的索引:

public static int indexOf(char[] arr, char ch) 
   {
        int index = -1;
        if (arr == null || arr.length == 0) {
            return index;
        }
        for (int i = 0; i < arr.length; ++i) {
            if (arr[i] == ch) {
                index = i;
                break;
            }
        }
        return index;
    }

如果正确实现了我的新数组(使用开头列出的3个数组),则会存储{'2', '0', '0', '2'},因为第一个符号出现两次,最后一个符号出现两次。

因此,我需要编写一个方法,该方法使用上面传入的3个数组以及我的indexOf方法来计算每个符号的出现次数,并将其存储在我的新数组arrayCount中。我看过其他一些文章,它们类似于对数组中元素的出现进行计数,但是它们都使用比我上学期的计算机科学课程高得多的概念,如果我想获得全部学分,我不理解/不能将它们用于此作业。感谢您的提前回复!

有人建议我的问题是重复的,我看了另一个问题,但对我没有帮助-似乎建议使用哈希?我不知道那是什么。

0 个答案:

没有答案