Sobes.tech
Назад к вопросам
Junior — Middle
102

Если я вызову метод toList() на Stream, будет ли результатом ArrayList, или другой тип коллекции?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

Метод toList() в интерфейсе Stream (начиная с Java 16) возвращает неизменяемый список, но конкретный тип коллекции не гарантируется и не обязательно является ArrayList. В отличие от collect(Collectors.toList()), который обычно возвращает ArrayList, Stream.toList() может возвращать другой тип списка, оптимизированный для конкретной реализации.

Пример:

List<String> list = Stream.of("a", "b", "c").toList();
// list - неизменяемый, попытка изменить вызовет UnsupportedOperationException

Таким образом, нельзя полагаться на то, что результат будет именно ArrayList. Если нужен именно ArrayList, лучше использовать collect(Collectors.toList()).