> Какая упорядоченность у Map в Kotlin и существуют ли реализации, сохраняющие порядок элементов (Kotlin, Android)
Уровень: senior · Роль: mobile · Категория: Технические вопросы
Компании: Ozon
Стек: Kotlin, Android
> Пример ответа
В Kotlin стандартная реализация Map (например, HashMap) не гарантирует порядок элементов. Однако существуют специализированные реализации, которые сохраняют порядок:
-
LinkedHashMap- сохраняет порядок вставки элементов. Это наиболее часто используемый вариант, когда нужен предсказуемый порядок. Пример:val map = linkedMapOf("c" to 3, "a" to 1, "b" to 2) println(map) // {c=3, a=1, b=2} - порядок вставки сохранён -
sortedMapOf(на основеTreeMap) - сортирует ключи по их естественному порядку (или заданному компаратору). Пример:val map = sortedMapOf("c" to 3, "a" to 1, "b" to 2) println(map) // {a=1, b=2, c=3} - ключи отсортированы -
mutableMapOfв Kotlin по умолчанию возвращаетLinkedHashMap(начиная с Kotlin 1.1), поэтому порядок вставки сохраняется, но это не гарантировано спецификацией - полагаться на это не стоит.
Для Android-разработки, если нужен гарантированный порядок, используйте LinkedHashMap или linkedMapOf().
> Похожие задачи по mobile
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью