Maison >Java >javaDidacticiel >Comment convertir efficacement les itérables Java en flux ?

Comment convertir efficacement les itérables Java en flux ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-26 12:45:13447parcourir

How to Efficiently Convert Java Iterables to Streams?

Conversion d'itérables en flux dans Java 8

Problème :

Vous disposez d'une interface qui renvoie un itérable , et vous souhaitez utiliser l'API Java 8 Stream pour manipuler les données. Cependant, l'Iterable ne prend pas en charge la méthode stream().

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!

Déclaration:
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