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

Порядок элементов в setOf и mapOf

Вопрос

В каком порядке выводятся элементы setOf(3, 1, 2) при обходе?

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

Выберите вариант, и откроется разбор.

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

Коротко

Правильный ответ: 3, 1, 2: setOf сохраняет порядок вставки. Фабрики setOf и mapOf в Kotlin возвращают LinkedHashSet и LinkedHashMap, поэтому порядок обхода совпадает с порядком вставки.

Варианты ответа

  1. 1, 2, 3: множество всегда отсортировано
  2. 3, 1, 2: setOf сохраняет порядок вставкиправильный ответ
  3. Порядок не определён, как у HashSet
  4. Ошибка: у множества нет порядка обхода

Разбор

Фабрики setOf и mapOf в Kotlin возвращают LinkedHashSet и LinkedHashMap, поэтому порядок обхода совпадает с порядком вставки. Неопределённый порядок у hashSetOf/hashMapOf, отсортированный у sortedSetOf (TreeSet). На этот порядок можно полагаться, это задокументированное поведение.

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

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