Метод collect в Java Stream API выполняет мутабельное сокращение (mutable reduction) элементов потока в один результирующий объект. Он принимает в качестве аргумента Collector и позволяет агрегировать данные различными способами, например, собирать элементы в коллекции, группировать их или применять агрегирующие функции (суммирование, усреднение и т.д.).
Основные компоненты Collector:
supplier(): Создает новый, пустой результирующий контейнер.accumulator(): Добавляет текущий элемент потока в результирующий контейнер.combiner(): Объединяет два результирующих контейнера (используется в параллельных потоках).finisher(): Применяет финальное преобразование к результирующему контейнеру (optional).Популярные реализации Collector предоставляются классом Collectors:
toList(), toSet(), toMap(): Сбор элементов в List, Set, Map соответственно.joining(): Объединение строковых элементов.groupingBy(): Группировка элементов по заданному критерию.counting(), summingInt(), averagingDouble(): Подсчет, суммирование, усреднение.Пример использования для сбора в список:
java