Назад к вопросам
Middle
74
questionbank

Какие операции существуют в стримах и какие типы операций бывают?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

В Java 8+ стримы предоставляют набор операций для обработки коллекций данных.

Типы операций:

  1. Промежуточные (Intermediate): Возвращают новый стрим. Могут выполняться лениво. Позволяют связывать цепочку операций. К ним относятся:

    • filter()
    • map()
    • flatMap()
    • distinct()
    • sorted()
    • peek()
    • limit()
    • skip()
  2. Терминальные (Terminal): Завершают работу стрима, выполняя обработку и возвращая результат или производя побочный эффект. После выполнения терминальной операции стрим нельзя использовать повторно. К ним относятся:

    • forEach()
    • forEachOrdered()
    • toArray()
    • reduce()
    • collect()
    • count()
    • sum()
    • average()
    • min()
    • max()
    • anyMatch()
    • allMatch()
    • noneMatch()
    • findFirst()
    • findAny()

Пример цепочки операций:

// Промежуточные операции (filter, map)
// Терминальная операция (collect)
List<String> filteredList = originalList.stream()
    .filter(s -> s.startsWith("A")) // Фильтрация элементов, начинающихся с "A"
    .map(String::toUpperCase) // Преобразование в верхний регистр
    .collect(Collectors.toList()); // Сбор результатов в List