Collections Intermediário

Colete diretamente para uma lista não modificável com stream.toList().

✕ Java 8
List<String> list = stream.collect(
    Collectors.collectingAndThen(
        Collectors.toList(),
        Collections::unmodifiableList
    )
);
✓ Java 16+
List<String> list = stream.toList();
Viu um problema com este código? Nos avise.
📏

O mais curto

stream.toList() não precisa de collect() nem de import de Collectors.

🔒

Imutável

O resultado não pode ser modificado — sem mutações acidentais.

📖

Legível

Lê-se naturalmente como o passo final de qualquer pipeline de stream.

Abordagem Antiga
collectingAndThen
Abordagem Moderna
stream.toList()
Desde o JDK
16
Dificuldade
Intermediário
Coletores não modificáveis
Disponível

Amplamente disponível desde o JDK 16 (março de 2021)

O Java 10 adicionou toUnmodifiableList(), toUnmodifiableSet() e toUnmodifiableMap() para substituir o encapsulamento verboso com collectingAndThen. Para listas especificamente, o stream.toList() do Java 16 oferece uma alternativa ainda mais simples — sem chamada a collect(). Use toUnmodifiableSet() e toUnmodifiableMap() para outros tipos de coleção.

Compartilhar 𝕏 🦋 in