Summe und Durchschnitt in einem Java-Array suchen

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:

  1. Das Teilen einesint durch ein anderesint ergibt einint Ergebnis. To get an accurate average, we first cast sum to double.

  2. 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.