Выбор ответа Junior Лямбды и Stream API спрашивают часто обновлено

Стрим без терминальной операции

Вопрос

Что напечатает код?

List.of(1, 2, 3).stream()
    .peek(x -> System.out.print(x + " "))
    .map(x -> x * 2);

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Ничего. Промежуточные операции ленивые: peek и map только описывают конвейер.

Варианты ответа

  1. Ничегоправильный ответ
  2. 1 2 3
  3. 2 4 6
  4. Ошибку: стрим не закрыт

Разбор

Промежуточные операции ленивые: peek и map только описывают конвейер. Без терминальной операции (toList, forEach, count...) ни один элемент не обрабатывается, поэтому ничего не печатается. Закрывать стрим из коллекции не нужно, ошибки нет.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.