Sobes.tech
Junior — Middle
64

Чем отличаются промежуточный и терминальный методы в программировании?

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

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

sobes.tech AI

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

Промежуточные методы возвращают новый Stream и позволяют строить цепочку операций. Они ленивы, то есть не выполняются сразу, а только при вызове терминального метода. Примеры: filter(), map(), sorted().

Терминальные методы запускают выполнение всей цепочки операций и возвращают результат (не Stream). После их вызова Stream считается использованным и не может быть повторно использован. Примеры: collect(), forEach(), reduce().

Пример:

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

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

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