Назад к вопросам
Северсталь-Ифоком
Junior — Middle
101
Какое различие между методом toList() и методом collect(Collectors.toList()) в Stream API в Java?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Java Stream API метод collect(Collectors.toList()) — это стандартный способ собрать элементы потока в список (List). Он возвращает новый список, содержащий все элементы потока.
Метод toList() появился в Java 16 как более короткий и удобный способ собрать элементы в список. Он тоже возвращает список, но с некоторыми отличиями:
Collectors.toList()не гарантирует конкретную реализацию списка и может возвращать, например,ArrayList.Stream.toList()возвращает неизменяемый список (immutable), который нельзя модифицировать (например, добавить или удалить элементы).
Пример:
List<String> list1 = stream.collect(Collectors.toList()); // mutable list
List<String> list2 = stream.toList(); // immutable list
list1.add("new"); // работает
nlist2.add("new"); // выбросит UnsupportedOperationException
Таким образом, основное различие — в мутабельности возвращаемого списка и удобстве использования.