Sobes.tech
Junior — Middle

Stream API'de son bir işlem çağrısı yoksa hangi davranış gösterilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

В Java Stream API операции делятся на промежуточные и конечные. Промежуточные операции (например, filter, map) ленивы и не выполняются до тех пор, пока не вызвана конечная операция (например, collect, forEach).

Если конечная операция не вызвана, то поток не будет обработан, и никакие вычисления не произойдут. Это означает, что цепочка промежуточных операций просто создаст описание потока, но не выполнит его.

Пример:

Stream.of(1, 2, 3, 4)
    .filter(n -> n % 2 == 0)
    .map(n -> n * 2);
// Ни один элемент не обработается, так как нет конечной операции

Чтобы запустить обработку, нужно вызвать конечную операцию:

List<Integer> result = Stream.of(1, 2, 3, 4)
    .filter(n -> n % 2 == 0)
    .map(n -> n * 2)
    .collect(Collectors.toList());

Без конечной операции поток не выполняется.