Назад к вопросам
Junior
88
questionbank
Для чего используется метод collect() в стримах Java?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Метод collect() в Java Stream API используется для сбора элементов стрима в какой-либо контейнер, такой как List, Set, Map, или для проведения обобщающей операции над элементами.
Он принимает один или несколько параметров: ассертер (supplier), аккумулятор (accumulator), комбинатор (combiner), или же готовый Collector. По сути, collect() сворачивает стрим в один результат.
Примеры использования с предопределенными коллекторами из класса Collectors:
-
Сбор в список:
// Сбор всех элементов стрима в ArrayList list.stream() .collect(Collectors.toList()); -
Сбор в множество:
// Сбор уникальных элементов стрима в HashSet list.stream() .collect(Collectors.toSet()); -
Сбор в карту:
// Сбор элементов в карту, где ключ - id, значение - объект list.stream() .collect(Collectors.toMap(/* keyMapper */ obj -> obj.getId(), /* valueMapper */ obj -> obj)); -
Группировка:
// Группировка по полю type, возвращает Map<Type, List<Object>> list.stream() .collect(Collectors.groupingBy(/* classifier */ obj -> obj.getType())); -
Объединение строк:
// Объединение строк с разделителем list.stream().map(String::valueOf) .collect(Collectors.joining(", "));
Также можно создать собственный Collector для выполнения более специфических задач сбора.