Heim >Java >javaLernprogramm >Stream-API in Java 8: So verwenden Sie die Methode Reduce(), um Aggregationsvorgänge für Sammlungen durchzuführen

Stream-API in Java 8: So verwenden Sie die Methode Reduce(), um Aggregationsvorgänge für Sammlungen durchzuführen

王林
王林Original
2023-07-30 22:07:581225Durchsuche

Stream-API in Java 8: So verwenden Sie die Methode „reduce()“ zum Durchführen von Aggregationsvorgängen für Sammlungen

Einführung:
In Java 8 wurde die Stream-API eingeführt, die eine leistungsfähigere und bequemere Möglichkeit zur Verarbeitung von Sammlungsdaten bietet. Die Methode „reduce()“ in der Stream-API spielt eine wichtige Rolle beim Aggregationsvorgang der Sammlung. In diesem Artikel wird die Verwendung der Methode „reduce()“ vorgestellt und einige Codebeispiele bereitgestellt.

1. Übersicht über die Methode „reduce()“
Die Methode „reduce()“ ist eine der Kernmethoden in der Stream-API für Aggregationsvorgänge für Sammlungen. Es akzeptiert einen Parameter vom Typ BinaryOperator, der definiert, wie die Sammlungselemente aggregiert werden. Die Methode „reduce()“ wendet die Aggregationsoperation nacheinander auf die Elemente der Sammlung an und gibt ein optionales Ergebnis zurück. Die Methode

reduce() hat zwei überladene Versionen:

  1. T Reduce(T Identity, BinaryOperator8742468051c85b06f0a0af9e3e506b5c Accumulator)
  2. Optional8742468051c85b06f0a0af9e3e506b5c Reduce(BinaryOperator8742468051c85b06f0a0af9e3e506b5c Accumulator)

Die erste Version Die Reduce( )-Methode akzeptiert eine Anfangswertidentität und einen Binäroperator-Akkumulator. Es nimmt den Anfangswert als Ausgangspunkt der Berechnung und wendet jedes Element auf den Akkumulator an, um schließlich das aggregierte Ergebnis zurückzugeben.

Die zweite Version der Methode Reduce() akzeptiert nur einen binären Operator-Akkumulator. Es stellt keinen Anfangswert bereit und gibt daher ein optionales Objekt zurück, das mögliche Ergebnisse darstellt.

2. Beispiele für die Verwendung der Reduce()-Methode

Im Folgenden finden Sie einige Codebeispiele, die verschiedene Verwendungen der Reduce()-Methode zeigen:

  1. Summieren Sie die Elemente der Menge:
    Listc0f559cc8d56b43654fcbe4aa9df7b4a asList( 1, 2, 3, 4, 5);
    int sum = zahlen.stream()

             .reduce(0, (a, b) -> a + b);

    System.out.println(sum); // Ausgabe: 15

  2. Finden Sie den Maximalwert der Menge Elemente:
    List< ;Integer> zahlen = Arrays.asList(1, 2, 3, 4, 5);
    Optionalc0f559cc8d56b43654fcbe4aa9df7b4a max = zahlen.stream()

                            .reduce(Integer::max);

    System.out.println(max.orElse(0 )); / / Ausgabe: 5

  3. Strings verketten:
    Listf7e83be87db5cd2d9a8a0b8117b38cd4
    System.out.println(result); // Ausgabe: Java Stream API

  4. Benutzerdefinierter Aggregationsvorgang:
  5. List8abf60ac54173a2785e603c7a1f95b4e people = Arrays.asList(

    new Person("Alice", 20),
    new Person ("Bob", 30),
    new Person("Charlie", 25)
    );
    int totalAge = people.stream()

                    .reduce("", (a, b) -> a + " " + b);

    System.out.println(totalAge); // Ausgabe: 75

  6. In diesem Beispiel verwenden wir einen benutzerdefinierten binären Operator, um das Alter von Person-Objekten zu summieren.

Fazit: Die

reduce()-Methode ist eine der wichtigen Methoden in der Stream-API für Sammlungsaggregationsvorgänge. Mit der Methode „reduce()“ können wir Operationen wie das Summieren der Elemente der Menge, das Ermitteln des Maximalwerts und das Verketten von Zeichenfolgen ausführen. In der tatsächlichen Entwicklung können wir binäre Operatoren nach Bedarf anpassen, um komplexere Aggregationsoperationen zu implementieren. Wenn Sie die Methode Reduce() beherrschen, können Sie unseren Code prägnanter und effizienter gestalten.

Das obige ist der detaillierte Inhalt vonStream-API in Java 8: So verwenden Sie die Methode Reduce(), um Aggregationsvorgänge für Sammlungen durchzuführen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn