Назад к вопросам
Junior — Middle
67
Какой результат возвращает вызов методов, не являющихся терминальными, у потоков данных в Stream API?
Ответ от нейросети
sobes.tech AI
В Java Stream API методы, не являющиеся терминальными (например, map, filter, sorted), возвращают новый поток (Stream<T>), который представляет собой ленивую последовательность операций.
Это значит, что при вызове таких методов никакие вычисления не выполняются сразу — создаётся новый промежуточный поток, который хранит цепочку операций.
Пример:
Stream<String> stream = list.stream()
.filter(s -> s.startsWith("A")) // возвращает новый Stream
.map(String::toUpperCase); // возвращает новый Stream
Вычисления начнутся только при вызове терминального метода, например, collect(), forEach(), count().
Таким образом, промежуточные методы возвращают поток для построения цепочки операций, а терминальные — запускают обработку и возвращают результат.