[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-java-8-kakie-promezhutochnye-metody-raboty-so-strimami-vy-znaete":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},373,"kakie-promezhutochnye-metody-raboty-so-strimami-vy-znaete",10,"java-8","Java 8+","☕","Какие промежуточные методы работы со стримами вы знаете?","Промежуточные (intermediate) операции возвращают новый стрим и выполняются лениво — только при вызове терминальной операции. Их можно выстраивать в цепочки произвольной длины.\n\n| Метод | Описание |\n|-------|----------|\n| `filter(predicate)` | Фильтрация по условию |\n| `map(function)` | Преобразование каждого элемента |\n| `flatMap(function)` | Преобразование + выпрямление вложенных стримов |\n| `sorted()` \u002F `sorted(comparator)` | Сортировка |\n| `distinct()` | Удаление дубликатов (по `equals()`) |\n| `limit(n)` | Ограничение первыми `n` элементами |\n| `skip(n)` | Пропуск первых `n` элементов |\n| `peek(consumer)` | Побочное действие без изменения стрима (для отладки) |\n| `mapToInt()` \u002F `mapToDouble()` \u002F `mapToLong()` | Преобразование в примитивный стрим |\n| `flatMapToInt()` \u002F `flatMapToDouble()` \u002F `flatMapToLong()` | `flatMap` с примитивным стримом |\n\nДля числовых стримов дополнительно доступен `mapToObj()`, преобразующий примитивный стрим обратно в объектный, и `boxed()` для автобоксинга.\n\nПромежуточные операции делятся на stateless (`filter`, `map`, `flatMap`, `peek`) и stateful (`sorted`, `distinct`, `limit`, `skip`). Stateful-операции могут потребовать буферизации всех элементов перед продолжением обработки.\n\n> **На собеседовании:** важно знать разделение на stateless и stateful. Stateful-операции (`sorted`, `distinct`) потребляют больше памяти и не дружат с бесконечными стримами.","","junior",[15],"java8",[],null,{"title":19,"description":20,"ogTitle":19,"ogDescription":21,"keywords":22,"schemaAnswer":23,"featuredSnippetReady":24},"Какие конечные методы работы со стримами вы знаете? — Gymterview","Конечные (терминальные) операции запускают обработку конвейера и возвращают результат — значение, коллекцию или `void`. После вызова терминальной операции стрим","Конечные (терминальные) операции запускают обработку конвейера и возвращают результат — значение, коллекцию или `void`. ",[15,13],"Конечные (терминальные) операции запускают обработку конвейера и возвращают результат — значение, коллекцию или `void`. После вызова терминальной операции стрим закрывается и повторно использоваться не может.",true]