我无法创建一种计算出现次数的方法

时间:2019-06-13 08:13:23

标签: java arrays

我已经创建了一种方法来计算数组中出现的次数,但是我无法编译和运行它。

编译器给出错误:

  

countOfOccurence类型中的enceence(int [])方法不适用于参数(int)

public class countOfOccurence {

    public static void main(String[] args) {
        int[] number = {15,16,14};

        System.out.print(occurence(number[15]));
    }

    public static int occurence(int[] number) {

        int count = 0;
        for(int i = 0 ; i < number.length; i++) {

            for(int k = 0 ; i < number.length; i++) {
                if(number[k] == number[i]) {
                    count++;
                }
            }
        }
        return count;
    }
}

2 个答案:

答案 0 :(得分:0)

您的occurrence方法需要一个数组,但是您只是将一个int传递给它(数组中的第15个元素,这也会导致运行时错误,因为数组中只有3个元素)。

但是我也认为您的逻辑在这里不对,您当前的方法(假设可以编译)将计算数组中所有重复数字的所有出现次数,而不仅仅是您想要的数字。

首先,您的出现方法需要2个参数,即实际数组和要计算其出现次数的数字。您不需要内部循环,只需保持外部循环并在内部检查array元素是否等于所需的数字即可。

public static void main(String[] args) {
  int[] number = {15,16,14};
  System.out.print(occurence(number, 15));
}

public static int occurence(int[] numberArray, int number) {
  int count = 0;
  for(int i = 0 ; i < numberArray.length; i++) {
    if(numberArray[i] == number) {
      count++;
    }
  }
  return count;
}

如果要进行优化,当然有更好/更干净的方法可以计算数组中元素的出现次数,例如使用Streams API。

答案 1 :(得分:0)

occurence(int[] number)函数接受整数数组参数。并且,您正在使用occurence(number[15])调用该函数。 number[15]表示从数字数组开始的第15个索引位置,这在您的代码中也无效。

要使您的方案正常工作,应将出现函数更改为接受两个参数,例如public static int occurence(int[] numbers, int number)。然后,通过occurence(number, 15)进行调用。