我正在做一个需要我创建追加方法的项目。
这是指示说的:
这些方法应该创建一个新的双精度数组 数据元素后跟作为参数传递的数组元素。对此数组的引用 应该分配给数据。如果参数为null,那么该方法应该什么都不做(没有新的 阵列创建)
到目前为止,这是我的代码:
public void append(double [] d) {
if (data != null) {
double[] newDataArray = new double [data.length];
for(int i = 0; i < data.length; i++) {
newDataArray[i] = data[i];
}
} else {
}
}
我正在使用这个主要方法测试它:
double[] data1 = {};
double[] data2 = { 25 };
float[] data3 = {};
float[] data4 = { 25 };
int[] data5 = {};
int[] data6 = { 50 };
long[] data7 = {};
long[] data8 = { 12 };
Stat stat1 = new Stat();
stat1.append(data1);
stat1.append(data2);
stat1.append(data3);
stat1.append(data4);
stat1.append(data5);
stat1.append(data6);
stat1.append(data7);
stat1.append(data8);
data1 = null;
stat1.append(data1);
System.out.println("stat1 data = " + stat1.toString());
System.out.println("stat1 min = " + stat1.min());
System.out.println("stat1 max = " + stat1.max());
System.out.println("stat1 average = " + stat1.average());
System.out.println("stat1 mode = " + stat1.mode());
System.out.println("stat1 variance = " + stat1.variance());
System.out.println("stat1 standard deviation = " + stat1.standardDeviation() + "\n");
这是我的输出:
stat1 data = [0.0, ]
stat1 min = 0.0
stat1 max = 0.0
stat1 average = 0.0
stat1 mode = 0.0
stat1 variance = 0.0
stat1 standard deviation = 0.0
但输出应为:
stat1 data = [25.0, 25.0, 50.0, 12.0]
stat1 min = 12.0
stat1 max = 50.0
stat1 average = 28.0
stat1 mode = 25.0
stat1 variance = 189.5
stat1 standard deviation = 13.765899897936205
有人可以帮我理解我做错了吗?
答案 0 :(得分:1)
data
未在任何地方定义,即使它在append
方法中使用过;它也不会在你的方法中被分配。