Что выведет код Senior Лямбды и Stream API обновлено
Что выведет: sorted собирает всё
Вопрос
Что выведет программа (Java 21)? Каждый вывод println с новой строки.
import java.util.stream.*;
public class Main {
public static void main(String[] args) {
Stream.of(3, 1, 2)
.peek(x -> System.out.println("a" + x))
.sorted()
.peek(x -> System.out.println("b" + x))
.limit(1)
.forEach(x -> System.out.println("c" + x));
}
}
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: a3, a1, a2, b1, c1. sorted операция с состоянием: прежде чем отдать первый элемент дальше, ей нужно увидеть все, поэтому сначала три строки a.
Что выведет
a3
a1
a2
b1
c1
Разбор
sorted операция с состоянием: прежде чем отдать первый элемент дальше, ей нужно увидеть все, поэтому сначала три строки a. Потом отсортированные элементы идут дальше по одному, limit(1) пропускает только первый и прекращает обработку: b1, c1.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.