Skip to content

Latest commit

 

History

History
63 lines (41 loc) · 2.03 KB

File metadata and controls

63 lines (41 loc) · 2.03 KB

Stream API

✅ Что это:

Stream API — это способ функциональной обработки коллекций (и других источников данных) в декларативном стиле.


🔧 Ключевые особенности:

  • Не изменяет исходную коллекцию
  • Работает лениво — вычисления происходят только при терминальной операции
  • Поддерживает параллельную обработку

🧱 Основные этапы работы со Stream:

collection.stream()           // создание стрима
         .filter(...)         // промежуточная операция
         .map(...)            // преобразование
         .collect(...)        // терминальная операция

🔁 Виды операций:

🔹 Промежуточные (ленивые):

  • filter(Predicate) — фильтрация
  • map(Function) — преобразование элементов
  • sorted(), distinct(), limit(n)

🔸 Терминальные:

  • collect(Collectors.toList()) — сбор в коллекцию
  • forEach(Consumer) — действие над каждым элементом
  • count(), anyMatch(), allMatch(), reduce()

💡 Пример:

List<String> names = List.of("Anna", "Alex", "Bob");

List<String> result = names.stream()
    .filter(n -> n.startsWith("A"))
    .map(String::toUpperCase)
    .collect(Collectors.toList());

Результат: ["ANNA", "ALEX"]


⚠️ Важно:

  • stream() — обычный стрим, однопоточный
  • parallelStream()многопоточный (может быть быстрее, но не всегда)
  • Потоки одноразовые — нельзя использовать повторно после терминальной операции