Maison >Java >javaDidacticiel >Quelle est la différence entre `map()` et `flatMap()` dans Java 8 Streams ?
Comprendre la différence entre les méthodes map() et flatMap() de Java 8
Dans Java 8, map() et flatMap() Les méthodes peuvent être appliquées à un Stream
Méthode map()
L'opération map() génère une valeur de sortie pour chaque valeur d'entrée. Essentiellement, il applique une fonction à chaque élément du flux d’entrée. La fonction prend la valeur d'entrée et produit une seule valeur de résultat.
Méthode flatMap()
En revanche, l'opération flatMap() peut produire n'importe quel nombre de valeurs ( y compris zéro) pour chaque valeur d’entrée. Ceci est activé par son argument : une fonction qui prend une valeur et renvoie un nombre arbitraire de valeurs.
La raison de cette différence est que les méthodes Java ne peuvent renvoyer que zéro ou une valeur. flatMap() contourne cette limitation en permettant à la fonction mappeur de renvoyer un flux en sortie. Les valeurs de ce flux sont ensuite drainées et transmises au flux de sortie. Par conséquent, la sortie est considérée comme « aplatie » puisque les regroupements de valeurs de la fonction mapper ne sont pas distinguables dans le flux de sortie.
Utilisation
Généralement, flatMap() est utilisé lorsque la fonction mapper a l'intention de renvoyer des valeurs nulles (en utilisant Stream.empty()) ou plusieurs valeurs (en utilisant Stream.of(a, b, c)). Néanmoins, tout type de flux peut être restitué.
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!