java - 查找 arrayList 中位数的问题

标签 java arrays oop arraylist

我不断收到 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;
}

最佳答案

问题出在你找到中间的线上:

middle = (sets[sets.size()/2] + sets[sets.size()/2 - 1])/2;

您只能对数组使用 [index] 表示法。您需要使用 getter/setter 方法来访问 ArrayList 的元素。这应该有效:

middle = (sets.get(sets.size()/2) + sets.get(sets.size()/2 - 1))/2;

关于java - 查找 arrayList 中位数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41117879/

相关文章:

Java读取文本文件2列并存储在数组中

java - 内部类和构造函数

java - 有什么规定的方式查看java源代码吗?

c - 将数组元素添加到结构中的数组

javascript - 删除数组中特定对象内的 JavaScript 属性

javascript - 通过引用复制对象是否有实际用途?

java - 返回 java.util.Map 的 java 方法在 openapi 中生成 String 返回而不是 Map

java - 在java中重新打包依赖项

ios - 从父类(super class) iOS swift 中识别子类

c# - 为什么我不能将此对象隐式转换为类引用