Maison > Java > javaDidacticiel > Quelle est la différence entre les méthodes `map()` et `flatMap()` pour le traitement des flux dans Java 8 ?

Quelle est la différence entre les méthodes `map()` et `flatMap()` pour le traitement des flux dans Java 8 ?

Barbara Streisand
Libérer: 2024-11-17 05:02:03
original
552 Les gens l'ont consulté

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

Traitement de flux avec les méthodes map() et flatMap()

Dans Java 8, l'interface Stream fournit deux méthodes pour traiter les flux de données : map() et flatMap(). Les deux méthodes prennent une fonction comme argument et produisent un nouveau flux, mais elles diffèrent dans la manière dont elles gèrent les résultats de l'application de la fonction à chaque élément.

Méthode map()

La méthode map() applique la fonction spécifiée à chaque élément du flux d'entrée, produisant un nouveau flux de résultats. Par exemple, l'extrait de code suivant utilise map() pour doubler la valeur de chaque entier dans une liste :

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.stream()
        .map(i -> i * 2)
        .forEach(System.out::println);
Copier après la connexion

Le résultat de ce code serait :

2
4
6
8
10
Copier après la connexion

Méthode flatMap()

La méthode flatMap() applique également la fonction spécifiée à chaque élément du flux d'entrée, mais elle ne produit pas de nouveau flux de résultats. Au lieu de cela, il combine les résultats de l'application de la fonction à chaque élément dans un seul flux.

Par exemple, l'extrait de code suivant utilise flatMap() pour concaténer les caractères individuels d'une liste de chaînes dans un nouveau flux :

List<String> words = Arrays.asList("hello", "world", "java");
words.stream()
        .flatMap(word -> Arrays.stream(word.split("")))
        .forEach(System.out::println);
Copier après la connexion

La sortie de ce code serait :

h
e
l
l
o
w
o
r
l
d
j
a
v
a
Copier après la connexion

Différence clé

La différence clé entre map() et flatMap( ) est que map() produit un nouveau flux de valeurs, tandis que flatMap() produit un flux aplati qui combine les résultats de l'application de la fonction à chaque élément.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal