Convertir Iterable a Stream en Java
En Java, podemos usar el Iterador
para iterar a través de cada elemento de la colección. La secuencia es una canalización de objetos de colecciones.
Puede haber dos tipos de flujos. Uno es paralelo y otro es un flujo secuencial.
En este artículo, aprenderemos un método para convertir el Iterable
en Stream
.
Utilice el método StreamSupport.stream()
para convertir Iterable
a Stream
en Java
Ningún método en la interfaz iterable
puede convertir directamente iterable
en stream
. Entonces, debemos usar el método stream()
de la clase StreamSupport
.
Los usuarios pueden seguir la siguiente sintaxis para usar el método stream()
.
Spliterator<T> spliter = iter.spliterator();
return StreamSupport.stream(spliter, isParallel);
Parámetros:
spliter |
Es un divisor del iterador, que hemos convertido mediante el método Iterable.spliterator() . |
isParallel |
Un valor booleano define si la transmisión es paralela o secuencial. Los usuarios deben pasar el valor booleano true para obtener el flujo paralelo. |
En el siguiente ejemplo, hemos creado el iterable de enteros. Llamamos a la función IterToStream()
y pasamos el iterable como un argumento que devuelve el flujo de un iterable en particular.
En la función ItrToStream()
, estamos convirtiendo el iterable en spliterator
. Después de eso, usamos el método StreamSupport.stream()
para convertir el divisor
en flujo.
Por fin, estamos imprimiendo la transmisión.
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));
}
}
Producción :
12121
212123
12213
21212
21212
Hemos aprendido con éxito a convertir iterable
a stream
en Java usando el método StreamSupport.stream()
.