Heim > Java > javaLernprogramm > Hauptteil

Was ist der Unterschied zwischen den Methoden „map()' und „flatMap()' für die Stream-Verarbeitung in Java 8?

Barbara Streisand
Freigeben: 2024-11-17 05:02:03
Original
423 Leute haben es durchsucht

What is the difference between `map()` and `flatMap()` methods for stream processing in Java 8?

Stream-Verarbeitung mit den Methoden map() und flatMap()

In Java 8 bietet die Stream-Schnittstelle zwei Methoden zur Verarbeitung von Datenströmen : map() und flatMap(). Beide Methoden nehmen eine Funktion als Argument und erzeugen einen neuen Stream, unterscheiden sich jedoch in der Art und Weise, wie sie mit den Ergebnissen der Anwendung der Funktion auf jedes Element umgehen.

map()-Methode

Die Methode „map()“ wendet die angegebene Funktion auf jedes Element im Eingabestream an und erzeugt einen neuen Stream der Ergebnisse. Der folgende Codeausschnitt verwendet beispielsweise map(), um den Wert jeder Ganzzahl in einer Liste zu verdoppeln:

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.stream()
        .map(i -> i * 2)
        .forEach(System.out::println);
Nach dem Login kopieren

Die Ausgabe dieses Codes wäre:

2
4
6
8
10
Nach dem Login kopieren

flatMap()-Methode

Die flatMap()-Methode wendet die angegebene Funktion auch auf jedes Element im Eingabestream an, erzeugt jedoch keinen neuen Ergebnisstream. Stattdessen werden die Ergebnisse der Anwendung der Funktion auf jedes Element in einem einzelnen Stream kombiniert.

Zum Beispiel verwendet das folgende Codefragment flatMap(), um die einzelnen Zeichen in einer Liste von Zeichenfolgen in einem neuen Stream zu verketten:

List<String> words = Arrays.asList("hello", "world", "java");
words.stream()
        .flatMap(word -> Arrays.stream(word.split("")))
        .forEach(System.out::println);
Nach dem Login kopieren

Die Ausgabe dieses Codes wäre:

h
e
l
l
o
w
o
r
l
d
j
a
v
a
Nach dem Login kopieren

Hauptunterschied

Der Hauptunterschied zwischen map() und flatMap( ) besteht darin, dass map() einen neuen Wertestrom erzeugt, während flatMap() einen abgeflachten Strom erzeugt, der die Ergebnisse der Anwendung der Funktion auf jedes Element kombiniert.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen den Methoden „map()' und „flatMap()' für die Stream-Verarbeitung in Java 8?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage