Sobes.tech
Назад к вопросам
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"]