Heim >Java >javaLernprogramm >Wie können wir aus einem Strom von Elementen effizient aufeinanderfolgende Paare erzeugen?

Wie können wir aus einem Strom von Elementen effizient aufeinanderfolgende Paare erzeugen?

Susan Sarandon
Susan SarandonOriginal
2024-12-15 12:54:25875Durchsuche

How Can We Efficiently Generate Successive Pairs from a Stream of Elements?

Aufeinanderfolgende Paare aus einem Stream

Wie können wir einen Stream von Grundelementen oder Objekten wie {0, 1, 2, 3, 4} mühelos umwandeln? aufeinanderfolgende Paare, wie unten dargestellt?

{new Pair(0, 1), new Pair(1, 2), new Pair(2, 3), new Pair(3, 4)}

Eintauchen in die Lösung

Während die Java 8-Streams-Bibliothek hervorragend darin ist, Streams für die parallele Verarbeitung in überschaubare Blöcke aufzuteilen, stellt sie die Stateful-Pipeline-Stufen vor Herausforderungen. Das Abrufen des Index des aktuellen Stream-Elements oder der Zugriff auf benachbarte Elemente stellen bemerkenswerte Einschränkungen dar.

Um diese Einschränkungen zu umgehen, verwenden wir häufig eine Technik, bei der Indizes zur Steuerung des Streams genutzt werden. Hier ist ein Einblick, wie wir mit diesem Ansatz Paare generieren können:

Code-Snippet:

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

Erläuterung der Lösung:

In diesem Beispiel durchlaufen wir die ArrayList mit Indizes beginnend bei 1 und garantieren dies für jeden Index i können wir sowohl auf arrayList.get(i-1) als auch auf arrayList.get(i) zugreifen. Der Kern des Codes ist die Funktion „mapToObj“, die jeden Index in ein Paar umwandelt, das die angrenzenden Elemente enthält.

Einschränkungen und Erweiterungen:

Dieser Ansatz ist zwar effektiv für Bei endlichen Streams, die in einer Sammlung mit wahlfreiem Zugriff gespeichert sind, gilt dies nicht für unendliche Streams. Die Pipeline kann jedoch parallel ausgeführt werden, was Leistungsvorteile bietet.

Das obige ist der detaillierte Inhalt vonWie können wir aus einem Strom von Elementen effizient aufeinanderfolgende Paare erzeugen?. 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