Heim >Java >javaLernprogramm >Wie kann ich aufeinanderfolgende Elemente aus einem Java-Stream koppeln?

Wie kann ich aufeinanderfolgende Elemente aus einem Java-Stream koppeln?

DDD
DDDOriginal
2024-11-28 20:26:12179Durchsuche

How Can I Pair Consecutive Elements from a Java Stream?

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!

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