Каков результат выполнения данного кода?
publicstaticvoidmain(Stringl] args) {
Stream<String> stream = Stream.iterate("', (s) -> 5 + "1");
System.out.printin(stream.limit(2).map(x -> x + "2"));
12112
212
212112
Будет вызван метод tostring на объекте типа Stream.
Код не компилируется.
Будет выброшено исключение при запуске.
Другие предметы Университет Лямбда-выражения и потоки (Streams) в Java программирование на Java результат выполнения кода исключение при запуске метод toString компиляция кода университетское обучение Java Новый
Давайте разберем данный код по шагам и выясним, что произойдет при его выполнении.
public static void main(String[] args)
.Stream<String>
должно быть Stream
, а вместо map(x -> x + "2")
должно быть map(x -> x + "2")
.Stream.iterate
используется для создания бесконечного потока, но в данном случае он неправильно написан. Правильный вызов должен быть Stream.iterate("1", s -> s + "1")
, где s -> s + "1"
— это лямбда-выражение, которое задает, как генерировать следующий элемент потока.stream.limit(2)
взял бы первые два элемента, которые были бы "1" и "11".map(x -> x + "2")
добавил бы "2" к каждому элементу, в результате чего получили бы "12" и "112".Вывод: Код не компилируется из-за синтаксических и логических ошибок. Поэтому правильный ответ — "Код не компилируется".