Junior — Middle
63
Чем отличаются промежуточный и терминальный методы в программировании?
Companies where asked
Answer from AI
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]