Sobes.tech
Junior — Middle

Se eu chamar o método toList() numa Stream, o resultado será um ArrayList ou outro tipo de coleção?

sobes.tech IA

Resposta da IA

O método toList() na interface Stream (a partir do Java 16) retorna uma lista imutável, mas o tipo específico de coleção não é garantido e não é necessariamente um ArrayList. Ao contrário de collect(Collectors.toList()), que normalmente retorna um ArrayList, Stream.toList() pode retornar outro tipo de lista, otimizado para a implementação específica.

Exemplo:

List<String> list = Stream.of("a", "b", "c").toList();
// a lista é imutável, tentar modificá-la causará UnsupportedOperationException

Portanto, não se pode confiar que o resultado será exatamente um ArrayList. Se for necessário um ArrayList, é melhor usar collect(Collectors.toList()).