Lorsqu'ils travaillent avec Java Streams, les développeurs sont souvent confrontés à des situations dans lesquelles ils utilisent à la fois la méthode groupingBy() et la réduction () collecteur pour manipuler leurs données. Cependant, il existe une approche plus efficace utilisant la méthode toMap() dans certains cas.
Qu'est-ce que le modèle ?
Comme l'a souligné @Holger dans un précédent discussion, il a été remarqué que lors de l'utilisation du collecteur réducteur avec groupingBy, il est souvent plus approprié d'utiliser le collecteur toMap à la place. Ce modèle est évident à travers l'expérience et les observations de nombreuses discussions sur Stackoverflow.
Pourquoi toMap() est préféré
Le collecteur groupingBy attend un deuxième collecteur comme argument, ce qui en fait convient pour appliquer la réduction mutable à des groupes de données. En revanche, le collecteur toMap avec une fonction de fusion est idéal pour la réduction classique. La fonction de fusion dans toMap a un objectif et une forme similaires à une fonction de réduction, même si elle n'est pas étiquetée comme telle.
En pratique, les collecteurs qui effectuent une réduction renvoient un facultatif, ce qui n'est pas toujours souhaitable lors de l'utilisation. groupingBy. C'est là que toMap entre en jeu, car il gère de tels cas de manière plus transparente.
Modèles supplémentaires
Bien que ce modèle spécifique ait été identifié, il existe probablement d'autres modèles qui deviennent apparent lors de l’utilisation de ces API. Cependant, les rassembler tous dans une seule réponse dépasse la portée de Stackoverflow. Les développeurs sont encouragés à explorer davantage ces API et à partager leurs expériences pour découvrir des modèles supplémentaires et de bonnes pratiques.
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!