【发布时间】:2017-04-28 07:46:31
【问题描述】:
我不断收到The type of the expression must be an array type but it resolved to ArrayList<Double> arrayList 正在从我的测试类中提取数字。我做了 if 来确定 arrayList 中的值是偶数还是奇数,因为我可以使用两种不同的方法来确定中位数。但我无法让中位数公式起作用。
public class Data {
private ArrayList<Double> sets;
public Data(double[] set) {
this.sets = new ArrayList<Double>();
for (double i : set) {
this.sets.add(i);
}
}
public double getMedian(){
Collections.sort(sets);
double middle = sets.size()/2;
if (sets.size()%2 == 1) {
middle = (sets[sets.size()/2] + sets[sets.size()/2 - 1])/2;
} else {
middle = sets[sets.size() / 2];
}
return middle;
}
【问题讨论】:
-
sets是一个ArrayList不是一个数组,你不能使用像sets[index]这样的索引符号,它是用于常规数组的。请改用sets.get(index)。 -
简短回答,ArrayList 不是数组。它是一个使用数组的对象,因此您需要使用方法来设置/获取其中的值。