suchen
HeimJavajavaLernprogrammWie kann ich einen Java 8-Stream effizient durchlaufen und auf Indizes zugreifen?

How Can I Efficiently Iterate Through a Java 8 Stream and Access Indices?

Effiziente Stream-Iteration mit Indizes in Java 8

Einführung

Der Zugriff auf Indizes während der Iteration über Streams in Java 8 kann sein eine mühsame Aufgabe, insbesondere im Vergleich zu seinem LINQ-Gegenstück. In diesem Artikel werden prägnante und effiziente Möglichkeiten zur Erreichung dieser Funktionalität untersucht.

Die Zwischenlösung

Ein Ansatz besteht darin, einen Strom von Indizes mit dem Strom von Elementen zu kombinieren, indem wir die verwenden zip-Methode. Allerdings wurde diese Methode entweder verschoben oder entfernt, wodurch dieser Ansatz weniger zugänglich ist.

Der sauberste Weg: Aus Indizes

Eine schlankere Lösung besteht darin, mit a zu beginnen Strom von Indizes. Dies kann mit IntStream.range() erreicht werden und bietet einen praktischen Ausgangspunkt für Filter- und Zuordnungsvorgänge:

String[] names = {"Sam", "Pamela", "Dave", "Pascal", "Erik"};
IntStream.range(0, names.length)
         .filter(i -> names[i].length()  names[i])
         .collect(Collectors.toList());

Verwendung eines veränderlichen Index

Eine weitere Alternative ist um einen Ad-hoc-Zähler mithilfe eines veränderlichen Objekts wie einer AtomicInteger zu verwalten. Dieser Ansatz ähnelt herkömmlichen For-Schleifen:

String[] names = {"Sam", "Pamela", "Dave", "Pascal", "Erik"};
AtomicInteger index = new AtomicInteger();
List<string> list = Arrays.stream(names)
                          .filter(n -> n.length() <p><strong>Vorsicht bei parallelen Streams</strong></p>
<p>Es ist wichtig zu beachten, dass die Verwendung dieser letzteren Methode bei parallelen Streams zu Problemen wie Elementen führen kann kann möglicherweise nicht in der richtigen Reihenfolge bearbeitet werden.</p></string>

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

Stellungnahme
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool