Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> xs = List.of(1, 2, 3);
xs.stream().map(x -> {
System.out.print(x + " ");
return x * 2;
});
System.out.println("end");
}
}end
- Ждать
1 2 3 end:mapтолько добавляет шаг в конвейер, а его лямбда выполняется, когда конвейер запустит терминальная операция вродеtoList; здесь её нет. - Ждать, что стрим выполнится позже сам: ленивость значит, что работа ждёт терминальную операцию, и без неё не случится вовсе.
- Что напечатает программа, если после
mapдобавить.toList()? - В каком порядке
filterиmapвидят элементы, когда терминальная операция запущена?