Что выведет код Junior Коллекции и последовательности обновлено

distinct, sorted и take

Вопрос

Что выведет код? По строке на каждый вывод.

fun main() {
    val xs = listOf(5, 3, 5, 1, 3, 9)
    println(xs.distinct())
    println(xs.sortedDescending().take(2))
    println(xs.sum() / xs.size)
    println(xs.indexOf(3) to xs.lastIndexOf(3))
    println(xs.firstOrNull { it > 100 })
}

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

Напишите, что выведет код: каждый вывод с новой строки.

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

Коротко

Код выведет: [5, 3, 1, 9], [9, 5], 4, (1, 4), null. distinct сохраняет первое вхождение каждого элемента в исходном порядке.

Что выведет

[5, 3, 1, 9]
[9, 5]
4
(1, 4)
null

Разбор

distinct сохраняет первое вхождение каждого элемента в исходном порядке. Сортировка по убыванию и take(2) дают два наибольших. Сумма 26 делится на 6 целочисленно, получается 4. to создаёт Pair, у которого toString в скобках. firstOrNull возвращает null вместо исключения.

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

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