Назад к вопросам
Junior — Middle
97
Можешь перечислить типы операций, которые можно выполнять с помощью потоков Stream?
Ответ от нейросети
sobes.tech AI
В Java Stream API операции делятся на промежуточные и терминальные.
Промежуточные операции возвращают новый Stream и позволяют строить конвейер обработки данных:
filter(Predicate)— фильтрация элементовmap(Function)— преобразование элементовflatMap(Function)— преобразование с распаковкой вложенных потоковdistinct()— удаление дубликатовsorted()иsorted(Comparator)— сортировкаlimit(long)— ограничение количества элементовskip(long)— пропуск первых элементов
Терминальные операции завершают обработку и возвращают результат или побочный эффект:
forEach(Consumer)— выполнение действия для каждого элементаcollect(Collector)— сбор элементов в коллекцию или другую структуруreduce(BinaryOperator)— свёртка элементов в одно значениеcount()— подсчёт элементовanyMatch(Predicate),allMatch(Predicate),noneMatch(Predicate)— проверка условийfindFirst(),findAny()— поиск элемента
Пример:
List<String> names = Arrays.asList("Anna", "Bob", "Alice", "Brian");
List<String> filtered = names.stream()
.filter(s -> s.startsWith("A"))
.map(String::toUpperCase)
.sorted()
.collect(Collectors.toList());
// filtered = ["ALICE", "ANNA"]