Convertir Stream a lista en Java
-
Convertir secuencia en lista usando el método
collect()
en Java -
Convertir secuencia en lista usando el método
toCollection()
en Java -
Convertir Stream a lista usando el método
forEach()
en Java -
Convertir secuencia en lista usando el método
toArray()
en Java
Este tutorial presenta la conversión de Stream
a List en Java.
Un Stream es una colección de objetos. Un Stream no almacena ningún dato y, por lo tanto, no es una estructura de datos.
El Stream
se agregó a la versión de Java 8, mientras que una Lista es una interfaz que almacena colecciones ordenadas. En este tutorial, veremos cómo convertir una secuencia en una lista.
Java tiene las siguientes formas en las que podemos lograr nuestra tarea:
- Convertir usando el método
collect()
- Convertir utilizando el método
toCollection()
- Convertir utilizando el método
forEach()
- Convertir utilizando el método
toArray()
Convertir secuencia en lista usando el método collect()
en Java
La operación Stream collect()
es una operación de terminal. Una operación de terminal significa que Stream se consume y no se puede usar más después de esta operación.
La sintaxis de este método es:
collect(Collector<? super T, A, R> collector)
Este método toma un objeto Collector como argumento.
La clase Collector se utiliza para recopilar los elementos de Stream en una colección. Esta clase tiene el método toList()
, que convierte el Stream en una Lista.
Veamos ahora un ejemplo de código:
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class SimpleTesting {
public static void main(String args[]) {
// declaring a stream
Stream<String> furnitures =
Stream.of("chair", "dinning table", "study table", "coffee table", "sofa");
// changing stream to list
List<String> furniture_list = furnitures.collect(Collectors.toList());
// printing the list
for (String furniture : furniture_list) {
System.out.println(furniture);
}
}
}
Producción :
chair
dinning table
study table
coffee table
sofa
Convertir secuencia en lista usando el método toCollection()
en Java
Este ejemplo es similar al anterior excepto que usamos el método Collector.toList()
en lugar del método Collectors.toCollection()
.
La clase Collector tiene un método llamado toCollection()
que devuelve un Collector que reúne los elementos de entrada en una nueva colección en el orden en que se encontraron. Mira el código de ejemplo a continuación:
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class SimpleTesting {
public static void main(String args[]) {
// declaring a stream
Stream<String> furnitures =
Stream.of("chair", "dinning table", "study table", "coffee table", "sofa");
// changing stream to list
List<String> furniture_list = furnitures.collect(Collectors.toCollection(ArrayList::new));
// printing the list
for (String furniture : furniture_list) {
System.out.println(furniture);
}
}
}
Producción :
chair
dinning table
study table
coffee table
sofa
Convertir Stream a lista usando el método forEach()
en Java
En este ejemplo, primero creamos una ArrayList vacía y luego usamos el método forEach()
para agregar cada elemento Stream a la Lista uno por uno. El Stream
tiene un método llamado forEach()
que actúa sobre todos los elementos del Stream de entrada.
Mira el código de ejemplo a continuación:
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class SimpleTesting {
public static void main(String args[]) {
// declaring a stream
Stream<String> furnitures =
Stream.of("chair", "dinning table", "study table", "coffee table", "sofa");
// declaring an empty arraylist
ArrayList<String> furniture_list = new ArrayList<>();
// adding elements one by one
furnitures.forEach(furniture_list::add);
// printing the list
for (String furniture : furniture_list) {
System.out.println(furniture);
}
}
}
Producción :
chair
dinning table
study table
coffee table
sofa
Convertir secuencia en lista usando el método toArray()
en Java
En este ejemplo, primero convertimos el Stream
en un arreglo usando el método toArray()
. Después de esto, convertimos la matriz recién creada en una Lista usando el método asList()
para obtener una lista.
Mira el código a continuación:
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class SimpleTesting {
public static void main(String args[]) {
// declaring a stream
Stream<String> furnitures =
Stream.of("chair", "dinning table", "study table", "coffee table", "sofa");
// converting stream to array
String[] furniture_array = furnitures.toArray(String[] ::new);
// converting array to list
List<String> furniture_list = Arrays.asList(furniture_array);
// printing the list
for (String furniture : furniture_list) {
System.out.println(furniture);
}
}
}
Producción :
chair
dinning table
study table
coffee table
sofa
Artículo relacionado - Java Stream
- Convertir Iterable a Stream en Java
- Distinto por propiedad en Java 8 Stream
- Filtro de Stream en Java
- La operación de reducción de Stream en Java
- Convertir lista a map en Java
- Convertir Array a Stream en Java