Встречается на 2% собеседований по Java
Какие знаешь виды операция в Stream
Stream в Java поддерживает два типа операций: промежуточные (intermediate) и терминальные (terminal).
- Промежуточные операции (ленивые, выполняются только при вызове терминальной операции):
filter(Predicate<T>)– фильтрация элементовmap(Function<T, R>)– преобразование элементовflatMap(Function<T, Stream<R>>)– "разворачивание" вложенных структурdistinct()– удаление дубликатовsorted()/sorted(Comparator<T>)– сортировкаpeek(Consumer<T>)– выполнение действия без изменения стрима
- Терминальные операции (завершают работу стрима):
forEach(Consumer<T>)– выполнение действия для каждого элементаcollect(Collector<T, A, R>)– сбор элементов (например, в List)reduce()– агрегация элементовcount()– подсчёт элементовmin()/max()– поиск минимума/максимумаanyMatch()/allMatch()/noneMatch()– проверка условий
Пример:
java
List<String> result = list.stream()
.filter(s -> s.length() > 3) // промежуточная
.map(String::toUpperCase) // промежуточная
.collect(Collectors.toList()); // терминальная
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы