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
487 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!

source:php.cn
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