Mediumstreamjava8
Что такое stream API (Java 8)?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
Stream API — функциональный подход к обработке коллекций. Pipeline: source → intermediate ops (lazy) → terminal op (запускает выполнение).
List<Integer> doubled = list.stream()
.filter(x -> x > 0) // intermediate
.map(x -> x * 2) // intermediate
.sorted() // intermediate, stateful
.collect(Collectors.toList()); // terminal
Map<Boolean, List<Integer>> bySign = list.stream()
.collect(Collectors.partitioningBy(x -> x >= 0));- Intermediate:
filter,map,flatMap,distinct,sorted,limit,peek; - Terminal:
collect,reduce,count,forEach,min,max,findFirst,anyMatch; - Lazy — ничего не выполняется без terminal;
- Stream одноразовый; не модифицирует source;
.parallelStream()использует ForkJoinPool;IntStream/LongStream— без boxing.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.