[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-java-8-dlya-chego-nuzhen-metod-collect-v-strimakh":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":16,"progress":17,"seo":18},364,"dlya-chego-nuzhen-metod-collect-v-strimakh",10,"java-8","Java 8+","☕","Для чего нужен метод collect в стримах?","\u003C!-- grade: junior\u002Fmiddle -->\n\n`collect()` — терминальная операция стрима, которая сворачивает элементы в изменяемый контейнер: коллекцию, строку, `Map` или любую другую структуру данных. Метод принимает `Collector`, определяющий четыре этапа: создание аккумулятора (supplier), добавление элемента (accumulator), объединение аккумуляторов при параллельном выполнении (combiner) и опциональная финализация (finisher).\n\n### Стандартные коллекторы (класс Collectors)\n\n| Коллектор | Описание |\n|-----------|----------|\n| `toList()`, `toSet()`, `toCollection()` | Сбор в список, множество или произвольную коллекцию |\n| `toMap()`, `toConcurrentMap()` | Преобразование в `Map` |\n| `joining()` | Конкатенация строк с разделителем |\n| `groupingBy()` | Группировка по ключу → `Map\u003CK, List\u003CT>>` |\n| `partitioningBy()` | Разбиение на две группы → `Map\u003CBoolean, List\u003CT>>` |\n| `counting()` | Подсчёт количества |\n| `summingInt\u002FDouble\u002FLong()` | Сумма |\n| `averagingInt\u002FDouble\u002FLong()` | Среднее |\n| `summarizingInt\u002FDouble\u002FLong()` | Статистика (min, max, sum, avg, count) |\n| `mapping()` | Дополнительное преобразование для вложенных коллекторов |\n\n### Создание собственного коллектора\n\n```java\nCollector\u003CString, List\u003CString>, List\u003CString>> toList = Collector.of(\n    ArrayList::new,         \u002F\u002F supplier\n    List::add,              \u002F\u002F accumulator\n    (l1, l2) -> { l1.addAll(l2); return l1; } \u002F\u002F combiner\n);\n```\n\n> **На собеседовании:** знание `toList()`, `toMap()`, `groupingBy()` и `joining()` обязательно. Дополнительный балл за понимание четырёх этапов коллектора и умение создать собственный через `Collector.of()`.","","junior",[15],"java8",[],null,{"title":19,"description":20,"ogTitle":19,"ogDescription":21,"keywords":22,"schemaAnswer":23,"featuredSnippetReady":24},"Для чего нужен метод collect в стримах? — Gymterview","`collect()` — терминальная операция стрима, которая сворачивает элементы в изменяемый контейнер: коллекцию, строку, `Map` или любую другую структуру данных. Мет","`collect()` — терминальная операция стрима, которая сворачивает элементы в изменяемый контейнер: коллекцию, строку, `Map",[15,13],"`collect()` — терминальная операция стрима, которая сворачивает элементы в изменяемый контейнер: коллекцию, строку, `Map` или любую другую структуру данных. Метод принимает `Collector`, определяющий четыре этапа: создание аккумулятора (supplier), добавление элемента (accumulator), объединение аккуму",true]