Problème :
Vous disposez d'une interface qui renvoie un itérable
Solution :
Pour convertir un Iterable en Stream sans le convertir en liste, vous pouvez utiliser la méthode StreamSupport.stream(). Cette méthode prend un objet Spliterator, qui peut être obtenu à partir de la méthode spliterator() de Iterable.
Voici un exemple de la façon de convertir un Iterable en Stream :
Iterable<T> iterable = ...; Stream<T> stream = StreamSupport.stream(iterable.spliterator(), false);
Une fois que vous avez un flux, vous pouvez effectuer les opérations de flux habituelles telles que le filtrage, le mappage et réduisant.
Remarque :
La méthode StreamSupport.stream() fournit un moyen plus efficace de convertir un Iterable en Stream par rapport à l'utilisation directe de la méthode spliteratorUnknownSize() . La méthode spliteratorUnknownSize() crée toujours un nouvel objet Spliterator, ce qui peut être inefficace si Iterable est déjà une collection. La méthode StreamSupport.stream() utilise l'objet Spliterator existant de Iterable, s'il est disponible, ce qui améliore les performances.
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!