Sobes.tech
Junior — Middle
103

Mikor történnek pontosan a műveletek végrehajtásai a Java Stream metódusláncban?

Cégeket kérdeztek
ИннотехИннотех

Válasz az MI-től

sobes.tech MI

В Java операции в цепочке методов Stream делятся на промежуточные (intermediate) и терминальные (terminal). Промежуточные операции — это ленивые преобразования, которые не выполняются сразу, а лишь формируют описание конвейера обработки данных.

Выполнение операций происходит только при вызове терминальной операции, которая инициирует обработку данных и возвращает результат или побочный эффект.

Например:

List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream()
    .filter(s -> s.startsWith("a"))  // промежуточная операция
    .map(String::toUpperCase);        // промежуточная операция

List<String> result = stream.collect(Collectors.toList()); // терминальная операция

Здесь фильтрация и преобразование не выполняются до вызова collect(). Терминальная операция запускает всю цепочку.