Heim >Java >javaLernprogramm >Wie kann ich aufeinanderfolgende Paare effizient aus einem Java-Stream generieren?
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!