Stream.toList()
O terminal toList() substitui o verboso collect(Collectors.toList()).
Comparação 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();
Viu um problema com este código? Nos avise.
Por que a forma moderna ganha
7 caracteres vs 24
.toList() substitui .collect(Collectors.toList()).
Imutável
A lista resultante não pode ser modificada.
Fluente
Lê-se naturalmente no final de um pipeline.
Abordagem Antiga
Collectors.toList()
Abordagem Moderna
.toList()
Desde o JDK
16
Dificuldade
Iniciante
Suporte JDK
Stream.toList()
Disponível
Amplamente disponível desde o JDK 16 (março de 2021)
Como funciona
Stream.toList() retorna uma lista não modificável. É equivalente a .collect(Collectors.toUnmodifiableList()), mas muito mais curto. Nota — o resultado é imutável, diferente de Collectors.toList().
Documentação Relacionada