Sobes.tech
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()).