La conversión de Java Stream to List es de las más clásicas de Java a nivel de programación funcional . En muchas ocasiones trabajamos con un stream el cual procesamos y necesitamos volverle a convertir en una lista.
Java Stream to List
Recordemos que un stream es un flujo de trabajo . Este flujo de trabajo realiza una serie de transformaciones sobre los elementos para poder si tenemos necesidad volverlo a convertir en una lista clásica de Java.
package com.arquitecturajava; import java.util.List; import java.util.stream.Collectors; public class Principal1 { public static void main(String[] args) { var nueva= List.of("hola","que","tal","estas") .stream() .map(String::toUpperCase) .collect(Collectors.toList()); nueva.forEach(System.out::println); } }
Si ejecutamos este código nos daremos cuenta que nos imprime la lista de textos en mayúscula.
HOLA QUE TAL ESTAS
Sin embargo mucha gente se quejaba de que el uso del metodo collect es demasiado enrevesado para una operación tan sencilla sobre una lista.
Java 16 al rescate
A partir de Java 16 tenemos la opción sencilla de usar el método toList del propio Stream con lo cual simplificaremos de forma clara el como realizar esta transformación de Java Stream to List .
package com.arquitecturajava; import java.util.List; public class Principal { public static void main(String[] args) { var nueva= List.of("hola","que","tal","estas") .stream() .map(String::toUpperCase).toList(); nueva.forEach(System.out::println); } }
El resultado es el mismo:
HOLA QUE TAL ESTAS
Muchas veces nos olvidamos de conocer correctamente las novedades que las APIs han ido añadiendo al lenguaje y que permiten una simplificación del código elegante.