Heim > Java > javaLernprogramm > Wie kann man in Java effizient aufeinanderfolgende Paare aus einem Datenstrom erstellen?

Wie kann man in Java effizient aufeinanderfolgende Paare aus einem Datenstrom erstellen?

Barbara Streisand
Freigeben: 2024-11-30 06:45:15
Original
380 Leute haben es durchsucht

How to Efficiently Create Successive Pairs from a Data Stream in Java?

Effizientes Konstruieren aufeinanderfolgender Paare aus einem Strom

Anhand eines Stroms von Grund- oder Objektwerten besteht die Aufgabe, ihn in einen Strom von Paaren umzuwandeln, aus denen jedes Paar besteht zwei aufeinanderfolgende Elemente aus dem ursprünglichen Stream. Bei gegebenem Stream {0, 1, 2, 3, 4} wäre die gewünschte Ausgabe beispielsweise:

{ new Pair(0, 1), new Pair(1, 2), new Pair(2, 3), new Pair(3, 4) }
Nach dem Login kopieren

Analyse

Die Java 8-Streams Die Bibliothek zeichnet sich durch die Aufteilung von Streams in kleinere Teile zur parallelen Verarbeitung aus. Es bietet jedoch begrenzte Unterstützung für zustandsbehaftete Pipeline-Stufen, was den Zugriff auf benachbarte Stream-Elemente und das Abrufen des Index des aktuellen Elements erschwert.

Lösung

Um diese zu überwinden Einschränkungen können wir einen indizierten Ansatz nutzen, bei dem wir den Stream mithilfe von Indizes steuern. Dies erfordert, dass die Werte in einer Datenstruktur mit wahlfreiem Zugriff wie einer ArrayList gespeichert werden, aus der Elemente bequem abgerufen werden können. Mit den Werten in einer ArrayList können wir die Paare wie folgt konstruieren:

IntStream.range(1, arrayList.size())
             .mapToObj(i -> new Pair(arrayList.get(i-1), arrayList.get(i)))
             .forEach(System.out::println);
Nach dem Login kopieren

Beachten Sie, dass dieser Ansatz die Einschränkung hat, dass die Eingabe ein endlicher Stream sein muss. Die Pipeline kann jedoch parallel ausgeführt werden.

Das obige ist der detaillierte Inhalt vonWie kann man in Java effizient aufeinanderfolgende Paare aus einem Datenstrom erstellen?. 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