初学者在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());
}
}
答
试试下面的程式。这个类只有一般的方法。您可以添加对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());
}
}
看到这个https://github.com/apache/mahout/blob/master/mr/src/test/java/org/apache/mahout/cf/taste/impl/common/RunningAverageAndStdDevTest.java –