Heim > Java > javaLernprogramm > Wie kann ich beim Zugriff auf Elementindizes einen Java 8-Stream durchlaufen?

Wie kann ich beim Zugriff auf Elementindizes einen Java 8-Stream durchlaufen?

Patricia Arquette
Freigeben: 2024-12-27 14:53:10
Original
717 Leute haben es durchsucht

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

Iterieren eines Streams mit Indizes in Java 8: Eine kurze Lösung

Um effektiv über einen Stream zu iterieren und auf Indizes zuzugreifen, stehen mehrere Ansätze zur Verfügung.

Verwenden eines Streams von Indizes

Die sauberste Lösung besteht darin, einen Stream von Indizes zu erstellen und ihn basierend zu filtern auf den Elementen des Streams:

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());
Nach dem Login kopieren

Dieser Ansatz stellt sicher, dass die resultierende Liste nur Elemente enthält, die das indexbasierte Kriterium erfüllen.

Verwendung eines AtomicInteger Counter

Eine weitere Alternative besteht darin, einen veränderlichen Zähler innerhalb des Streams zu verwalten:

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());
Nach dem Login kopieren

Diese Methode bietet eine vertraute Syntax ähnlich for-Schleifen. Es ist jedoch wichtig zu beachten, dass dieser Ansatz möglicherweise scheitern kann, wenn er in einem parallelen Stream verwendet wird, da Elemente möglicherweise nicht in der richtigen Reihenfolge verarbeitet werden.

Letztendlich hängt die Wahl des Ansatzes von den spezifischen Anforderungen ab und Leistungsaspekte der Anwendung.

Das obige ist der detaillierte Inhalt vonWie kann ich beim Zugriff auf Elementindizes einen Java 8-Stream durchlaufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage