Stream-Elemente koppeln
Wie können Sie bei einem Stream von Elementen wie {0, 1, 2, 3, 4} konvertieren? es in Paare aufeinanderfolgender Elemente (Paar Objekte)?
Antwort:
Die Java 8-Stream-Bibliothek ist auf die Aufteilung von Streams in kleinere Teile für die parallele Verarbeitung spezialisiert, wodurch ihre Stateful-Pipeline-Stufen eingeschränkt werden. Daher ist es nicht möglich, direkt auf benachbarte Stream-Elemente zuzugreifen oder deren Indizes abzurufen.
Um diese Einschränkung zu überwinden, sollten Sie erwägen, die Stream-Elemente zu indizieren und über eine Datenstruktur mit wahlfreiem Zugriff wie eine ArrayList auf sie zuzugreifen. Zum Beispiel bei einer ArrayList mit Werten:
IntStream.range(1, arrayList.size()) .mapToObj(i -> new Pair(arrayList.get(i-1), arrayList.get(i))) .forEach(System.out::println);
Diese Pipeline erstellt Paare aufeinanderfolgender Elemente und läuft parallel. Beachten Sie, dass diese Lösung davon ausgeht, dass der Eingabestrom endlich und nicht unendlich ist.
Das obige ist der detaillierte Inhalt vonWie kann ich aufeinanderfolgende Elemente aus einem Java-Stream koppeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!