Sobes.tech
Back to questions
Senior
5

Два map и один collect — сколько раз стрим пройдётся по исходной коллекции?

Companies where asked
SSP Soft

Answer from AI

sobes.tech AI

В Java Stream операции map являются промежуточными и ленивыми, а collect — терминальной. При цепочке из двух map и одного collect проход по исходной коллекции происходит один раз.

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

Пример:

List<String> result = list.stream()
    .map(s -> s.trim())
    .map(s -> s.toUpperCase())
    .collect(Collectors.toList());

Здесь элементы проходят по цепочке один раз: сначала обрезаются пробелы, затем преобразуются в верхний регистр, и результат собирается в список.