Convertir Iterable a Stream en Java

Shubham Vora 12 octubre 2023
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().

Shubham Vora avatar Shubham Vora avatar

Shubham is a software developer interested in learning and writing about various technologies. He loves to help people by sharing vast knowledge about modern technologies via different platforms such as the DelftStack.com website.

LinkedIn GitHub

Artículo relacionado - Java Stream