Finden Sie Summe und Durchschnitt in einem Java-Array
1. Einführung
In diesem kurzen Tutorial erfahren Sie, wie Sie Summe und Durchschnitt in einem Array mithilfe von Java-Standardschleifen und derStream-API berechnen können.
2. Finden Sie die Summe der Array-Elemente
2.1. Summe mit einer For-Schleife
Um die Summe aller Elemente in einem Array zu ermitteln, müssenwe can simply iterate the array and add each element to a sum accumulating __ variable.
Dies beginnt ganz einfach mit einemsum von 0 und fügt jedes Element im Array hinzu, während wir fortfahren:
public static int findSumWithoutUsingStream(int[] array) {
int sum = 0;
for (int value : array) {
sum += value;
}
return sum;
}
2.2. Summe Mit der Java Stream API
Wir können die Stream-API verwenden, um das gleiche Ergebnis zu erzielen:
public static int findSumUsingStream(int[] array) {
return Arrays.stream(array).sum();
}
Es ist wichtig zu wissen, dass die Methodesum()nurprimitive type streamsunterstützt.
Wenn wir einen Stream für einenInteger-Wert in einer Box verwenden möchten, müssen wir den Stream zuerst mit dermapToInt-Methode inIntStream konvertieren.
Danach können wir diesum()-Methode auf unsere neu konvertiertenIntStream anwenden:
public static int findSumUsingStream(Integer[] array) {
return Arrays.stream(array)
.mapToInt(Integer::intValue)
.sum();
}
Sie können viel mehr über die Stream-APIherelesen.
3. Finde Durchschnitt in einem Java Array
3.1. Durchschnitt ohne die Stream-API
Sobald wir wissen, wie man die Summe der Array-Elemente berechnet, ist es ziemlich einfach, den Durchschnitt zu finden - alsAverage = Sum of Elements / Number of Elements:
public static double findAverageWithoutUsingStream(int[] array) {
int sum = findSumWithoutUsingStream(array);
return (double) sum / array.length;
}
Notes:
-
Das Teilen einesint durch ein anderesint ergibt einint Ergebnis. To get an accurate average, we first cast sum to double.
-
JavaArray hat einlength-Feld, in dem die Anzahl der Elemente im Array gespeichert ist.
3.2. Durchschnitt mit der Java Stream-API
public static double findAverageUsingStream(int[] array) {
return Arrays.stream(array).average().orElse(Double.NaN);
}
IntStream.average() gibtOptionalDouble zurück, die möglicherweise keinen Wert enthalten und eine spezielle Behandlung erfordern.
Lesen Sie mehr überOptionals inthis Artikel und über dieOptionalDouble Klasse inJava 8 Documentation.
4. Fazit
In diesem Artikel haben wir untersucht, wie die Summe / der Durchschnitt derintArray-Elemente ermittelt wird.
Wie immer ist der Codeover on Github verfügbar.