Heim > Java > javaLernprogramm > Wie konvertiere ich einen Iterator in einen Stream, ohne eine Kopie zu erstellen?

Wie konvertiere ich einen Iterator in einen Stream, ohne eine Kopie zu erstellen?

Barbara Streisand
Freigeben: 2024-11-07 01:05:02
Original
1115 Leute haben es durchsucht

How to Convert an Iterator to a Stream Without Creating a Copy?

Iterator ohne Kopieren in Stream konvertieren

Das direkte Konvertieren eines Iterators in einen Stream ohne Erstellen einer Zwischenkopie ist aus Leistungsgründen ein wünschenswerter Vorgang. Hier sind zwei effektive Methoden, um diese Konvertierung zu erreichen:

Methode 1: Spliterator verwenden

Erstellen Sie mithilfe der Spliterators-Klasse einen Spliterator aus dem Iterator und verwenden Sie ihn als Grundlage für der Stream:

<code class="java">Iterator<String> sourceIterator = Arrays.asList("A", "B", "C").iterator();
Stream<String> targetStream = StreamSupport.stream(
          Spliterators.spliteratorUnknownSize(sourceIterator, Spliterator.ORDERED),
          false);</code>
Nach dem Login kopieren

Methode 2: Verwenden von Iterable

Erstellen Sie ein Iterable aus dem Iterator mithilfe eines Lambda-Ausdrucks. Iterable ist eine funktionale Schnittstelle, die diese Konvertierung unkompliziert macht:

<code class="java">Iterator<String> sourceIterator = Arrays.asList("A", "B", "C").iterator();

Iterable<String> iterable = () -> sourceIterator;
Stream<String> targetStream = StreamSupport.stream(iterable.spliterator(), false);</code>
Nach dem Login kopieren

Der Schlüssel zur Vermeidung einer Kopie in beiden Methoden liegt darin, dass sie die StreamSupport-Klasse verwenden, die es Ihnen ermöglicht, einen Stream direkt aus einem Spliterator oder zu erstellen Iterierbar ohne Zwischenmanipulation der Sammlung.

Das obige ist der detaillierte Inhalt vonWie konvertiere ich einen Iterator in einen Stream, ohne eine Kopie zu erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage