初学者在Java中使用OOP我该如何getAverage和getStandardDeviation()

问题描述:

这是我迄今为止从我的代码。这是一门入门课程,所以我们还没有涉及更多高级课题。用我迄今为止输入的数字,然后按-1,但该程序没有做任何事情。 我们并未覆盖阵列。初学者在Java中使用OOP我该如何getAverage和getStandardDeviation()

import java.util.Scanner; 

public class DataSet { 
    private double value,count,sum, sumOfSquares, average; 

    public DataSet(double value) 
    { 
     this.value=value; 


    } 
    public double getAverage(){ 
    int value=0; 
    int count=0; 
    double sum=0; 
    while(value != -1){ 

     sum=sum+value; 
    average=sum/count; 

    } 
     return average; 
    } 
    public static void main(String[] args) 
    { 
     Scanner input = new Scanner(System.in); 
     System.out.print("Enter a numbers to get average and standard deviation: "); 
     int value=input.nextInt(); 

     DataSet s= new DataSet(value); 
     System.out.println(s.getAverage()); 
    } 



} 
+0

看到这个https://github.com/apache/mahout/blob/master/mr/src/test/java/org/apache/mahout/cf/taste/impl/common/RunningAverageAndStdDevTest.java –

试试下面的程式。这个类只有一般的方法。您可以添加对arraylist值进行操作的任何数字方法。

import java.util.ArrayList; 
import java.util.List; 
import java.util.Scanner; 

public class DataSet { 

private List<Integer> values; 

public DataSet(List<Integer> values) { 
    this.values = values; 
} 

public double getAverage() { 
    int sum = 0; 
    double result = 0.0; 
    for (int value : values) { 
     sum = sum + value; 
    } 
    if (values.size() > 0) { 
     result = sum/values.size(); 
    } 
    return result; 
} 

public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 
    List<Integer> values = new ArrayList<Integer>(); 
    System.out 
      .print("Enter a numbers to get average and standard deviation: "); 
    int value = input.nextInt(); 
    while (value != -1) { 
     values.add(value); 
     value = input.nextInt(); 
    } 
    DataSet s = new DataSet(values); 
    System.out.println(s.getAverage()); 
} 

}