„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Was ist der Hauptunterschied zwischen Stream.map() und Stream.flatMap() in Java 8?

Was ist der Hauptunterschied zwischen Stream.map() und Stream.flatMap() in Java 8?

Veröffentlicht am 15.11.2024
Durchsuche:824

What\'s the Key Difference Between Stream.map() and Stream.flatMap() in Java 8?

Stream.map() vs. Stream.flatMap() in Java 8

Stream.map() und Stream.flatMap() sind zwei häufig verwendete Methoden in Java 8, die ähnliche Transformationen an einem Wertestrom durchführen. Sie unterscheiden sich jedoch grundlegend darin, wie sie Werte verarbeiten und zurückgeben.

Stream.map()

  • Akzeptiert eine Funktion super T, ? erweitert R> als Argument, wobei T der Eingabetyp und R der Ausgabetyp ist.
  • Wendet die angegebene Funktion auf jedes Element im Eingabestream an.
  • Erzeugt einen neuen Stream mit dem transformierte Werte, die jeweils einem Eingabewert entsprechen.
  • Beispielsweise kann bei einem gegebenen Strom von Ganzzahlen die Karte verwendet werden, um jede Ganzzahl in ihre eigene umzuwandeln quadrat.

Stream.flatMap()

  • Akzeptiert eine Funktion super T, ? erweitert Stream erweitert R>> als Argument, das für jeden Eingabewert einen Stream zurückgibt.
  • Ruft die Funktion für jedes Element im Eingabestream auf.
  • Die resultierenden Streams werden zu einem einzigen Stream verkettet. Erstellen einer „abgeflachten“ Ausgabe.
  • Bei einem gegebenen String-Stream kann flatMap beispielsweise verwendet werden, um alle einzelnen Zeichen in einen einzigen String-Stream zu extrahieren Zeichen.

Hauptunterschied

Der Hauptunterschied zwischen map() und flatMap() liegt in der Art und Weise, wie sie mit den Ergebnissen der Transformationsfunktion umgehen:

  • map() erzeugt einen transformierten Wert für jede Eingabe value.
  • flatMap() erzeugt null oder mehr transformierte Werte für jeden Eingabewert.

Diese Unterscheidung wirkt sich auf Form und Inhalt aus des resultierenden Streams. flatMap() ermöglicht die Erstellung verschachtelter Streams, während map() die gleiche Dimensionalität wie der ursprüngliche Stream beibehält.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3