Maison > Java > javaDidacticiel > Comment puis-je parcourir un flux Java 8 tout en accédant aux index d'éléments ?

Comment puis-je parcourir un flux Java 8 tout en accédant aux index d'éléments ?

Patricia Arquette
Libérer: 2024-12-27 14:53:10
original
718 Les gens l'ont consulté

How Can I Iterate Through a Java 8 Stream While Accessing Element Indices?

Itérer un flux avec des indices dans Java 8 : une solution concise

Pour itérer efficacement sur un flux et accéder aux indices, plusieurs approches sont disponibles.

Utiliser un flux d'indices

La solution la plus propre consiste à créer un flux d'indices et à le filtrer en fonction du éléments du flux :

String[] names = {"Sam", "Pamela", "Dave", "Pascal", "Erik"};
IntStream.range(0, names.length)
         .filter(i -> names[i].length() <= i)
         .mapToObj(i -> names[i])
         .collect(Collectors.toList());
Copier après la connexion

Cette approche garantit que la liste résultante contient uniquement des éléments qui répondent au critère basé sur l'index.

Utiliser un compteur AtomicInteger

Une autre alternative consiste à maintenir un compteur mutable dans le flux :

String[] names = {"Sam", "Pamela", "Dave", "Pascal", "Erik"};
AtomicInteger index = new AtomicInteger();
List<String> list = Arrays.stream(names)
                          .filter(n -> n.length() <= index.incrementAndGet())
                          .collect(Collectors.toList());
Copier après la connexion

Cette méthode fournit une syntaxe familière similaire aux boucles for. Cependant, il est crucial de noter que cette approche peut potentiellement échouer lorsqu'elle est utilisée sur un flux parallèle, car les éléments peuvent ne pas être traités dans l'ordre.

En fin de compte, le choix de l'approche dépend des exigences spécifiques. et considérations de performances de l'application.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal