Heim >Java >javaLernprogramm >Wie kann ich aufeinanderfolgende Paare effizient aus einem Java-Stream generieren?

Wie kann ich aufeinanderfolgende Paare effizient aus einem Java-Stream generieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-29 08:19:10140Durchsuche

How Can I Efficiently Generate Consecutive Pairs from a Java Stream?

Aufeinanderfolgende Paare aus Streams sammeln

Das Generieren aufeinanderfolgender Paare aus einem Elementstrom ist eine häufige Aufgabe in der Programmierung. Stellen Sie sich die Aufgabe vor, einen einfachen Stream wie { 0, 1, 2, 3, 4 } wie folgt in einen Stream von Paaren umzuwandeln: { new Pair(0, 1), new Pair(1, 2), new Pair(2, 3), neues Paar(3, 4) }.

In Java 8 sind Streams hauptsächlich für die Aufteilung von Daten in kleinere Blöcke zur parallelen Verarbeitung konzipiert. Infolgedessen sind zustandsbehaftete Pipeline-Stufen begrenzt und Vorgänge wie der Zugriff auf benachbarte Stream-Elemente werden nicht direkt unterstützt.

Ein Ansatz zur Behebung dieser Einschränkung besteht darin, die Stream-Indizes zu verwenden, indem man sich auf eine Datenstruktur mit wahlfreiem Zugriff wie z eine ArrayList. Wenn die Stream-Elemente beispielsweise in einer ArrayList gespeichert sind, können wir die gewünschten Paare wie folgt generieren:

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

Diese Lösung weist eine Einschränkung auf, da sie erfordert, dass der Eingabestream endlich ist. Es ermöglicht jedoch die parallele Ausführung der Pipeline.

Das obige ist der detaillierte Inhalt vonWie kann ich aufeinanderfolgende Paare effizient aus einem Java-Stream generieren?. 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