Stream.toList()
El terminal toList() reemplaza el verboso collect(Collectors.toList()).
Comparación de Código
✕ Java 8
List<String> result = stream
.filter(s -> s.length() > 3)
.collect(Collectors.toList());
✓ Java 16+
List<String> result = stream
.filter(s -> s.length() > 3)
.toList();
¿Ves un problema con este código? Cuéntanos.
Por qué gana la forma moderna
7 caracteres vs 24
.toList() reemplaza .collect(Collectors.toList()).
Inmutable
La lista resultante no se puede modificar.
Fluido
Se lee naturalmente al final de un pipeline.
Enfoque Antiguo
Collectors.toList()
Enfoque Moderno
.toList()
Desde JDK
16
Dificultad
Principiante
Soporte JDK
Stream.toList()
Disponible
Ampliamente disponible desde JDK 16 (marzo 2021)
Cómo funciona
Stream.toList() devuelve una lista no modificable. Es equivalente a .collect(Collectors.toUnmodifiableList()) pero mucho más corto. Nota: el resultado es inmutable, a diferencia de Collectors.toList().
Documentación Relacionada