Sobes.tech
Junior — Middle

Pokud zavolám metodu toList() na Stream, bude výsledkem ArrayList nebo jiný typ kolekce?

sobes.tech AI

Odpověď od 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()).