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

Можете объяснить, что означает термин 'нетерминальная операция' при работе с потоками данных в Stream API?

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

sobes.tech AI

В Stream API Java операции делятся на терминальные и нетерминальные (промежуточные).

Нетерминальная операция — это операция, которая возвращает новый поток (Stream) и не запускает обработку данных сразу. Она служит для построения цепочки преобразований, например, фильтрация, маппинг, сортировка.

Пример нетерминальных операций:

  • filter()
  • map()
  • sorted()
  • distinct()

Эти операции ленивы: они не выполняются до тех пор, пока не вызовется терминальная операция, например, forEach(), collect(), count().

Пример:

List<String> list = Arrays.asList("a", "bb", "ccc");

list.stream()
    .filter(s -> s.length() > 1) // нетерминальная
    .map(String::toUpperCase)    // нетерминальная
    .forEach(System.out::println); // терминальная

Таким образом, нетерминальные операции позволяют строить цепочку преобразований, а терминальная запускает выполнение.