Интерфейс Map

Интерфейс Map представляет коллекцию пар ключ-значение, где каждый ключ является уникальным и связан с определенным значением. Ключи и значения могут быть любого типа. Интерфейс является неизменяемым (immutable) - для создания изменяемых словарей используйте MutableMap.

Импорт

kotlinimport kotlin.collections.Map

Синтаксис

kotlininterface Map<K, out V>

Создание Map

Создать неизменяемый словарь можно с помощью функции mapOf, передавая пары ключ-значение:

kotlinval map: Map<String, Int> = mapOf("a" to 1, "b" to 2, "c" to 3)
println(map)

Результат выполнения кода:

kotlin{a=1, b=2, c=3}

Пример

Получение значения по ключу с помощью оператора [] или метода get:

kotlinval map = mapOf("a" to 1, "b" to 2, "c" to 3)
val value1 = map["a"]
val value2 = map.get("b")

println(value1)
println(value2)

Результат выполнения кода:

kotlinInt 1
Int 2

Пример

Проверка наличия ключа или значения в словаре:

kotlinval map = mapOf("a" to 1, "b" to 2, "c" to 3)
val hasKey = map.containsKey("a")
val hasValue = map.containsValue(5)

println(hasKey)
println(hasValue)

Результат выполнения кода:

kotlinBoolean true
Boolean false

Пример

Получение размера словаря и проверка на пустоту:

kotlinval map = mapOf("a" to 1, "b" to 2, "c" to 3)
val size = map.size
val isEmpty = map.isEmpty()

println(size)
println(isEmpty)

Результат выполнения кода:

kotlinInt 3
Boolean false

Пример

Получение всех ключей и значений словаря:

kotlinval map = mapOf("a" to 1, "b" to 2, "c" to 3)
val keys = map.keys
val values = map.values

println(keys)
println(values)

Результат выполнения кода:

kotlin[a, b, c]
[1, 2, 3]

Пример

Итерация по элементам словаря с помощью цикла for:

kotlinval map = mapOf("a" to 1, "b" to 2, "c" to 3)

for ((key, value) in map) {
  println("$key -> $value")
}

Результат выполнения кода:

kotlina -> 1
b -> 2
c -> 3

Пример

Использование метода getOrDefault для безопасного получения значений:

kotlinval map = mapOf("a" to 1, "b" to 2, "c" to 3)
val value1 = map.getOrDefault("a", 0)
val value2 = map.getOrDefault("x", 0)

println(value1)
println(value2)

Результат выполнения кода:

kotlinInt 1
Int 0

Смотрите также

  • интерфейс MutableMap,
    который представляет изменяемый словарь
  • интерфейс HashMap,
    который реализует словарь на основе хэш-таблицы
  • интерфейс LinkedHashMap,
    который сохраняет порядок добавления элементов
  • интерфейс TreeMap,
    который хранит элементы в отсортированном порядке