Sobes.tech
Назад к вопросам
Junior — Middle
64

Объясните, что такое нетерминальный метод в интерфейсе Stream и как он используется.

Компании, где спрашивали
DCloud

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

sobes.tech AI

Нетерминальный метод в интерфейсе Stream — это метод, который возвращает новый Stream и позволяет строить цепочку операций, не завершая поток.

Такие методы не запускают обработку данных, а лишь описывают последовательность преобразований. Обработка (терминальная операция) происходит только при вызове терминального метода.

Примеры нетерминальных методов: filter(), map(), sorted(), distinct().

Пример использования:

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

List<String> filtered = names.stream()
    .filter(name -> name.startsWith("A"))  // нетерминальный метод
    .map(String::toUpperCase)               // нетерминальный метод
    .collect(Collectors.toList());          // терминальный метод

System.out.println(filtered); // [ANNA]

Здесь filter и map — нетерминальные методы, они возвращают новый Stream, позволяя строить цепочку, а collect — терминальный метод, который запускает обработку и собирает результат.