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

王林
Freigeben: 2023-07-30 22:07:58
Original
1237 Leute haben es durchsucht

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, BinaryOperator Accumulator)
  2. Optional Reduce(BinaryOperator 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:
    List asList( 1, 2, 3, 4, 5);
    int sum = zahlen.stream()

             .reduce(0, (a, b) -> a + b);
    Nach dem Login kopieren

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

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

                            .reduce(Integer::max);
    Nach dem Login kopieren

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

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

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

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

                    .reduce("", (a, b) -> a + " " + b);
    Nach dem Login kopieren

    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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage