Sobes.tech
Middle

Какви операции съществуват в стриймовете и какви видове операции има?

sobes.tech AI

Отговор от 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()); // Събиране на резултатите в списък