Sobes.tech
Back to questions
Junior — Middle
71

Какие способы реализации интерфейса Map ты знаешь в Kotlin и чем они отличаются?

Companies where asked
Центр Инвест Банк

Answer from AI

sobes.tech AI

В Kotlin интерфейс Map реализован несколькими способами, которые отличаются по мутабельности и внутренней реализации:

  1. Map (read-only) — интерфейс для неизменяемых отображений. Его реализации не позволяют изменять содержимое. Пример создания:
val map: Map<String, Int> = mapOf("one" to 1, "two" to 2)
  1. MutableMap — расширяет Map и позволяет изменять содержимое (добавлять, удалять элементы). Пример:
val mutableMap: MutableMap<String, Int> = mutableMapOf("one" to 1)
mutableMap["two"] = 2
  1. HashMap — класс, реализующий MutableMap, основан на хеш-таблице. Обеспечивает быстрый доступ по ключу.

  2. LinkedHashMap — наследник HashMap, сохраняет порядок вставки элементов.

  3. SortedMap / TreeMap (через Java) — отображение, где ключи отсортированы.

Отличия:

  • Read-only Map не позволяет изменять данные.
  • MutableMap позволяет изменять.
  • HashMap быстрее, но не гарантирует порядок.
  • LinkedHashMap сохраняет порядок вставки.

В Kotlin стандартные функции mapOf и mutableMapOf возвращают соответственно read-only Map и MutableMap, обычно реализованные через LinkedHashMap.