Collections Intermedio

Recolecta directamente en una lista no modificable con stream.toList().

✕ Java 8
List<String> list = stream.collect(
    Collectors.collectingAndThen(
        Collectors.toList(),
        Collections::unmodifiableList
    )
);
✓ Java 16+
List<String> list = stream.toList();
¿Ves un problema con este código? Cuéntanos.
📏

Lo más breve posible

stream.toList() no necesita collect() ni importar Collectors.

🔒

Inmutable

El resultado no puede modificarse — sin mutaciones accidentales.

📖

Legible

Se lee de forma natural como paso terminal de cualquier pipeline de stream.

Enfoque Antiguo
collectingAndThen
Enfoque Moderno
stream.toList()
Desde JDK
16
Dificultad
Intermedio
Collectors no modificables
Disponible

Ampliamente disponible desde JDK 16 (marzo 2021)

Java 10 añadió toUnmodifiableList(), toUnmodifiableSet() y toUnmodifiableMap() para reemplazar el verboso envoltorio collectingAndThen. Para listas específicamente, stream.toList() de Java 16 ofrece una alternativa aún más simple — sin llamada a collect() en absoluto. Usa toUnmodifiableSet() y toUnmodifiableMap() para otros tipos de colecciones.

Compartir 𝕏 🦋 in