Gibt es eine eingebaute Methode, um den Durchschnitt einer Ganzzahl ArrayList zu berechnen?
Wenn nicht, kann ich eine Funktion, die das tun wird, indem Sie in den Namen der ArrayList und Rückgabe seiner durchschnittlichen Wert?
Gibt es eine eingebaute Methode, um den Durchschnitt einer Ganzzahl ArrayList zu berechnen?
Wenn nicht, kann ich eine Funktion, die das tun wird, indem Sie in den Namen der ArrayList und Rückgabe seiner durchschnittlichen Wert?
Es ist ganz einfach:
// Better use a `List`. It is more generic and it also receives an `ArrayList`.
public static double average(List<Integer> list) {
// 'average' is undefined if there are no elements in the list.
if (list == null || list.isEmpty())
return 0.0;
// Calculate the summation of the elements in the list
long sum = 0;
int n = list.size();
// Iterating manually is faster than using an enhanced for loop.
for (int i = 0; i < n; i++)
sum += list.get(i);
// We don't want to perform an integer division, so the cast is mandatory.
return ((double) sum) / n;
}
Eine noch bessere Leistung erzielen Sie, wenn Sie int[]
anstelle von ArrayList<Integer>
.
Wenn Sie später einen Computer mehr als der Durchschnitt wollen, schlage ich vor Colt Bibliothek, die am CERN entwickelt wurde und viele statistische Funktionen unterstützt. Siehe BinFunctions1D et DoubleMatrix1D . Eine Alternative (mit einer neueren Codebasis) könnte sein gemeinschafts-mathe :
DescriptiveStatistics stats = new DescriptiveStatistics();
for( int i = 0; i < inputArray.length; i++)
{
stats.addValue(inputArray[i]);
}
double mean = stats.getMean();
Demnächst: Verwendung von Lambda-Ausdrücken und Methodenverweisen in JDK 8 :
DoubleOperator summation = (a, b) -> a + b;
double average = data.mapReduce(Double::valueOf, 0.0, summation) / data.size();
System.out.println("Avergage : " + average);
Sie können verwenden gemein von der Apache Commons Bibliothek.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.