Junior — Middle
Si llamo al método toList() en un Stream, ¿el resultado será un ArrayList u otro tipo de colección?
sobes.tech AI
Respuesta de la IA
El método toList() en la interfaz Stream (a partir de Java 16) devuelve una lista inmutable, pero no se garantiza un tipo específico de colección y no necesariamente es ArrayList. A diferencia de collect(Collectors.toList()), que generalmente devuelve un ArrayList, Stream.toList() puede devolver otro tipo de lista, optimizado para la implementación concreta.
Ejemplo:
List<String> list = Stream.of("a", "b", "c").toList();
// La lista es inmutable, intentar modificarla provocará UnsupportedOperationException
Por lo tanto, no se puede confiar en que el resultado sea exactamente un ArrayList. Si se necesita específicamente un ArrayList, es mejor usar collect(Collectors.toList()).