Назад к вопросам
Junior — Middle
70
Какие способы реализации интерфейса Map ты знаешь в Kotlin и чем они отличаются?
Компании, где спрашивали
Центр Инвест Банк
Ответ от нейросети
sobes.tech AI
В Kotlin интерфейс Map реализован несколькими способами, которые отличаются по мутабельности и внутренней реализации:
- Map (read-only) — интерфейс для неизменяемых отображений. Его реализации не позволяют изменять содержимое. Пример создания:
val map: Map<String, Int> = mapOf("one" to 1, "two" to 2)
- MutableMap — расширяет Map и позволяет изменять содержимое (добавлять, удалять элементы). Пример:
val mutableMap: MutableMap<String, Int> = mutableMapOf("one" to 1)
mutableMap["two"] = 2
-
HashMap — класс, реализующий MutableMap, основан на хеш-таблице. Обеспечивает быстрый доступ по ключу.
-
LinkedHashMap — наследник HashMap, сохраняет порядок вставки элементов.
-
SortedMap / TreeMap (через Java) — отображение, где ключи отсортированы.
Отличия:
- Read-only Map не позволяет изменять данные.
- MutableMap позволяет изменять.
- HashMap быстрее, но не гарантирует порядок.
- LinkedHashMap сохраняет порядок вставки.
В Kotlin стандартные функции mapOf и mutableMapOf возвращают соответственно read-only Map и MutableMap, обычно реализованные через LinkedHashMap.