Sobes.tech
Junior — Middle

Ako pozovem metodu toList() na Stream, da li će rezultat biti ArrayList ili druga vrsta kolekcije?

sobes.tech АИ

Одговор од АИ

Метод 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()).