Ich bekomme immer The type of the expression must be an array type but it resolved to ArrayList<Double>
Die ArrayList zieht Zahlen aus meiner Test-Klasse. Ich habe das if gemacht, um festzustellen, ob die arrayList eine gerade Menge von Werten enthält oder eine ungerade, denn ich könnte die zwei verschiedenen Möglichkeiten benutzen, um den Median zu bestimmen. Aber ich bin nicht in der Lage, die mittlere Formel zum Funktionieren zu bringen.Probleme finden median von 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 {
}
return middle;
}
'sets' ist eine' ArrayList' nicht ein Array, Sie können nicht die Indexnotation wie 'sets [index]' verwenden, was für reguläre Arrays ist. Verwenden Sie stattdessen 'sets.get (index)'. – Berger
Kurze Antwort, eine ArrayList ist kein Array. Es ist ein Objekt, das ein Array verwendet, also müssen Sie Methoden verwenden, um Werte festzulegen/abzurufen. – AxelH