Konvertieren Sie Iterable in Java in Stream
In Java können wir den Iterator
verwenden, um durch jedes Sammlungselement zu iterieren. Der Stream ist eine Pipeline von Objekten aus Sammlungen.
Es kann zwei Arten von Streams geben. Einer ist parallel und der andere ist ein sequentieller Stream.
In diesem Artikel lernen wir eine Methode kennen, um das Iterable
in Stream
umzuwandeln.
Verwenden Sie die Methode StreamSupport.stream()
, um Iterable
in Stream
in Java umzuwandeln
Keine Methode in der iterable
-Schnittstelle kann iterable
direkt in stream
umwandeln. Also müssen wir die stream()
-Methode der StreamSupport
-Klasse verwenden.
Benutzer können der folgenden Syntax folgen, um die Methode stream()
zu verwenden.
Spliterator<T> spliter = iter.spliterator();
return StreamSupport.stream(spliter, isParallel);
Parameter:
spliter |
Es ist ein spliterator des Iterators, den wir mit der Methode Iterable.spliterator() konvertiert haben. |
isParallel |
Ein boolescher Wert definiert, ob der Stream parallel oder sequenziell ist. Benutzer sollten den booleschen Wert true übergeben, um den parallelen Stream zu erhalten. |
Im folgenden Beispiel haben wir die Iterierbarkeit von Ganzzahlen erstellt. Wir haben die Funktion IterToStream()
aufgerufen und das Iterable als Argument übergeben, das den Stream eines bestimmten Iterable zurückgibt.
In der Funktion ItrToStream()
wandeln wir das Iterable in spliterator
um. Danach haben wir die Methode StreamSupport.stream()
verwendet, um den spliterator
in einen Stream umzuwandeln.
Endlich drucken wir den Stream.
import java.util.*;
import java.util.stream.*;
class Test {
// function to convert iterable to stream
public static <T> Stream<T> ItrToStream(Iterable<T> iter) {
// converting iterable to spliter
Spliterator<T> spliter = iter.spliterator();
// using the stream() method of StreamSupport class
return StreamSupport.stream(spliter, false);
}
public static void main(String[] args) {
// creating array list of Integers
Iterable<Integer> iterable = Arrays.asList(12121, 212123, 12213, 21212, 21212);
// calling the IterToStream Function
Stream<Integer> stream = ItrToStream(iterable);
// Print the element of the sequential stream.
stream.forEach(s -> System.out.println(s));
}
}
Ausgang:
12121
212123
12213
21212
21212
Wir haben erfolgreich gelernt, in Java mit der Methode StreamSupport.stream()
iterable
in stream
umzuwandeln.