Что выведет код Middle Задачи на Kotlin обновлено
ArrayDeque и PriorityQueue
Вопрос
Что выведет код? По строке на каждый вывод.
import java.util.PriorityQueue
fun main() {
val dq = ArrayDeque<Int>()
dq.addLast(1); dq.addLast(2); dq.addFirst(0)
println(dq)
println(dq.removeLast())
val pq = PriorityQueue<Int>(compareByDescending { it })
pq.addAll(listOf(5, 1, 8, 3))
println(pq.poll())
println(pq.poll())
println(pq.size)
}
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: [0, 1, 2], 2, 8, 5, 2. ArrayDeque из stdlib добавляет с обоих концов: получаем [0, 1, 2], removeLast снимает 2.
Что выведет
[0, 1, 2]
2
8
5
2
Разбор
ArrayDeque из stdlib добавляет с обоих концов: получаем [0, 1, 2], removeLast снимает 2. PriorityQueue с обратным компаратором работает как max-куча: сначала 8, потом 5. В очереди остались два элемента.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.