Finden Sie Summe und Durchschnitt in einem Java-Array

1. Einleitung

In diesem kurzen Tutorial erfahren Sie, wie Sie Summe und Durchschnitt in einem Array mithilfe von Java-Standardschleifen und der Stream- 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, können wir das Array einfach iterieren und jedes Element zu einer akkumulierten Summe hinzufügenVariable.

Dies beginnt ganz einfach mit einer Summe von 0 und fügt jedes Element im Array hinzu:

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 sum () -Methode nur primitive Streams unterstützt.

Wenn wir einen Stream für einen Boxed Integer- Wert verwenden möchten , müssen wir den Stream zuerst mit der mapToInt- Methode in IntStream konvertieren .

Danach können wir die sum () -Methode auf unseren neu konvertierten IntStream anwenden :

public static int findSumUsingStream(Integer[] array) { return Arrays.stream(array) .mapToInt(Integer::intValue) .sum(); }

Hier können Sie viel mehr über die Stream-API lesen.

3. Finden Sie den 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 - als Durchschnitt = Summe der Elemente / Anzahl der Elemente :

public static double findAverageWithoutUsingStream(int[] array) { int sum = findSumWithoutUsingStream(array); return (double) sum / array.length; }

Anmerkungen :

  1. Das Teilen eines int durch ein anderes int gibt ein int- Ergebnis zurück. Um einen genauen Durchschnitt zu erhalten, setzen wir zuerst die Summe auf das Doppelte .
  2. Java Array verfügt über ein Längenfeld , 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 () gibt ein OptionalDouble zurück, das möglicherweise keinen Wert enthält und eine spezielle Behandlung erfordert.

Weitere Informationen zu Optionals finden Sie in diesem Artikel und zur OptionalDouble- Klasse in der Java 8-Dokumentation.

4. Fazit

In diesem Artikel haben wir untersucht, wie die Summe / der Durchschnitt der int- Array-Elemente ermittelt wird.

Wie immer ist der Code auf Github verfügbar.