Junior — Middle
Ако извикам метода toList() върху Stream, резултатът ще бъде ArrayList или друг тип колекция?
sobes.tech AI
Отговор от AI
Методът toList() в интерфейса Stream (от Java 16 нататък) връща неизменяем списък, но конкретният тип колекция не е гарантиран и не е задължително да е ArrayList. За разлика от collect(Collectors.toList()), който обикновено връща ArrayList, Stream.toList() може да връща друг тип списък, оптимизиран за конкретната имплементация.
Пример:
List<String> list = Stream.of("a", "b", "c").toList();
// списъкът е неизменяем, опитът да се промени ще доведе до UnsupportedOperationException
Затова не трябва да се разчита, че резултатът ще бъде точно ArrayList. Ако е необходим точно ArrayList, по-добре е да се използва collect(Collectors.toList()).