Java 试图计算一组数据的方差时出现编译器错误

Java 试图计算一组数据的方差时出现编译器错误,java,arrays,double,Java,Arrays,Double,我试图计算一组用户输入的数据的方差。然而,当我运行我的程序时,我得到了一个错误:类测试中的方法差异不能应用于给定的类型。 这是我目前的代码: public static double variance(ArrayList<Double> numbers, double mean) { double variance = 0; for (int i = 0; i <numbers.size(); i++) { variance = varianc

我试图计算一组用户输入的数据的方差。然而,当我运行我的程序时,我得到了一个错误:类测试中的方法差异不能应用于给定的类型。 这是我目前的代码:

public static double variance(ArrayList<Double> numbers, double mean) {

    double variance = 0;
    for (int i = 0; i <numbers.size(); i++) {
        variance = variance + Math.pow((numbers.get(i) - mean(numbers)), 2);
    }
    return variance/numbers.size();
}
public static void main(String[] args) {

    Scanner keyboard = new Scanner(System.in);
    System.out.println("Enter data set: ");
    ArrayList<Double> nums = new ArrayList<Double>();

    while (keyboard.hasNextDouble()) {
        nums.add(keyboard.nextDouble());
    }
    double numbs = mean(nums);
    System.out.println("Mean = " + numbs);
    double numbs2 = variance(nums);
    System.out.println("Variance = " + numbs2);
  }
}
public静态双方差(数组列表数,双均值){
双方差=0;

对于(int i=0;i您的
variance
方法需要2参数,但当您调用它时,只需一个参数

  • 调整
    variance
    方法以接受一个参数,如下所示

       public static double variance(ArrayList<Double> numbers) {
            double variance = 0;
            for (int i = 0; i <numbers.size(); i++) {
                variance = variance + Math.pow((numbers.get(i) - mean(numbers)), 2);
            }
            return variance/numbers.size();
        }
    

  • 那么我应该去掉“double mean”参数吗?或者有没有一种方法可以使用它,这样我就不必去掉它并在我的代码中实现它?在哪里定义了
    mean
    method?这是平均方法:公共静态双平均(ArrayList numbers){double sum=0;for(int I=0;Idouble mean
    paramlist@ShahrokhAryana,见我的答案非常感谢@Dadani
    public static double mean(ArrayList<Double> numbers) {
       double sum = 0;
       for (int i = 0; i < numbers.size(); i++) {
         sum += numbers.get(i);
       }
      return sum / numbers.size();
    }