Выбор ответа Senior Коллекции и последовательности обновлено
Порядок выполнения операций в Sequence
Вопрос
Сколько раз будет вызвана лямбда в map?
val r = listOf(1, 2, 3, 4, 5, 6).asSequence()
.map { it * 2 }
.filter { it > 3 }
.first()
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: 2. Последовательность обрабатывает элементы по одному через всю цепочку.
Варианты ответа
- 2правильный ответ
- 1
- 3
- 6
Разбор
Последовательность обрабатывает элементы по одному через всю цепочку. Элемент 1: map даёт 2, filter отбрасывает (не больше 3). Элемент 2: map даёт 4, filter пропускает, first() получает результат и обработка останавливается. map вызвался 2 раза. Для обычного списка map прошёл бы все 6 элементов до начала filter.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.