Sobes.tech
Назад к вопросам
Junior — Middle
70

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

Компании, где спрашивали
Центр Инвест Банк

Ответ от нейросети

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.