Dans Java 8, l'API Stream fournit un moyen puissant et efficace de manipuler les données. Cependant, toutes les collections Java ne peuvent pas être directement converties en flux. L'une de ces collections est Iterable, qui ne dispose pas de la méthode stream().
Pour combler cette lacune, Java 8 propose une solution via la méthode StreamSupport.stream(). Cette méthode prend un objet Spliterator en entrée et génère un flux à partir de celui-ci. Heureusement, Iterable fournit une méthode spliterator() qui renvoie un Spliterator correspondant.
En utilisant ces méthodes, vous pouvez convertir de manière transparente un Iterable en flux sans avoir besoin de conversions intermédiaires en liste. L'extrait de code suivant montre comment y parvenir :
Iterable<T> iterable = getIterable(); Stream<T> stream = StreamSupport.stream(iterable.spliterator(), false);
La variable stream contient désormais un flux qui peut être manipulé à l'aide du riche ensemble d'opérations fourni par l'API Stream. Cette approche offre les avantages de l'API Java 8 Stream tout en exploitant l'Iterable sous-jacent sans les frais liés à la création d'une nouvelle collection.
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!