Выбор ответа Junior Коллекции и последовательности обновлено
Порядок элементов в setOf и mapOf
Вопрос
В каком порядке выводятся элементы setOf(3, 1, 2) при обходе?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: 3, 1, 2: setOf сохраняет порядок вставки. Фабрики setOf и mapOf в Kotlin возвращают LinkedHashSet и LinkedHashMap, поэтому порядок обхода совпадает с порядком вставки.
Варианты ответа
- 1, 2, 3: множество всегда отсортировано
- 3, 1, 2:
setOfсохраняет порядок вставкиправильный ответ - Порядок не определён, как у
HashSet - Ошибка: у множества нет порядка обхода
Разбор
Фабрики setOf и mapOf в Kotlin возвращают LinkedHashSet и LinkedHashMap, поэтому порядок обхода совпадает с порядком вставки. Неопределённый порядок у hashSetOf/hashMapOf, отсортированный у sortedSetOf (TreeSet). На этот порядок можно полагаться, это задокументированное поведение.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.