Vergleich der Methoden „map()“ und „flatMap()“ in Java 8-Streams
Streams in Java 8 bieten einen leistungsstarken Satz von Operationen zum Arbeiten Datensammlungen, einschließlich map() und flatMap(). Beide Methoden nehmen einen Stream als Eingabe und geben einen neuen Stream zurück, unterscheiden sich jedoch in ihrem Verhalten basierend auf der Anzahl der für jeden Eingabewert erzeugten Ausgabewerte.
map()
- Akzeptiert eine Funktion, die jeden Eingabewert in einen einzelnen Ausgabewert umwandelt.
- Der Ausgabestream enthält die gleiche Anzahl von Elementen wie die Eingabe Stream.
flatMap()
- Akzeptiert eine Funktion, die jeden Eingabewert konzeptionell in einen Stream mit null oder mehr Ausgabewerten umwandelt.
- Der Ausgabe-Stream wird „abgeflacht“, indem alle Ausgabewerte der zugeordneten Streams in einem einzigen zusammengefasst werden Stream.
Hauptunterschiede
-
Ausgabegröße: map() erzeugt einen Ausgabewert für jeden Eingabewert, while flatMap() erzeugt für jeden Eingabewert eine beliebige Anzahl von Ausgabewerten.
-
Mapper Funktion:map() erfordert eine Funktion, die einen Eingabewert einem Ausgabewert zuordnet, während flatMap() eine Funktion erfordert, die einen Eingabewert einem Stream zuordnet.
Verwendung Fälle
-
map(): Konvertiert jedes Element in einem Stream mit einer einzigen Funktion. Konvertieren Sie beispielsweise einen String-Stream in Großbuchstaben.
-
flatMap(): Wird verwendet, wenn Sie mehrere Werte aus jedem Element in einem Stream extrahieren und die Ergebnisse dann in einen einzigen Stream zusammenfassen müssen . Zum Beispiel das Reduzieren eines Streams aus Listen in einen Stream einzelner Elemente.
Das obige ist der detaillierte Inhalt vonWas ist der Hauptunterschied zwischen „map()' und „flatMap()' in Java 8 Streams?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!