MutableMapWithDefault

Интерфейс MutableMapWithDefault расширяет базовый интерфейс MutableMap и добавляет возможность возврата значения по умолчанию для ключей, которые отсутствуют в карте. Это позволяет избежать исключений при обращении к несуществующим ключам и предоставляет гибкий механизм обработки отсутствующих значений.

Импорт

kotlinimport kotlin.collections.MutableMapWithDefault

Синтаксис

kotlininterface MutableMapWithDefault<K, V> : MutableMap<K, V>, MapWithDefault<K, V>

Создание MutableMapWithDefault

Для создания изменяемой карты со значением по умолчанию используется функция mutableMapOf с последующим вызовом withDefault:

kotlinval map = mutableMapOf("a" to 1, "b" to 2).withDefault { key -> 0 }

Пример

Создадим изменяемую карту со значением по умолчанию 0 и обратимся к существующему и несуществующему ключу:

kotlinval map = mutableMapOf("a" to 1, "b" to 2).withDefault { 0 }

println(map.getValue("a"))
println(map.getValue("c"))

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

kotlinInt 1
Int 0

Пример

Добавим новый элемент в изменяемую карту со значением по умолчанию:

kotlinval map = mutableMapOf("a" to 1).withDefault { 0 }

map["b"] = 2
println(map.getValue("b"))
println(map.getValue("c"))

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

kotlinInt 2
Int 0

Пример

Использование сложной логики для генерации значения по умолчанию:

kotlinval map = mutableMapOf(1 to "apple", 2 to "banana")
  .withDefault { key -> "unknown_$key" }

println(map.getValue(3))
println(map.getValue(5))

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

kotlinString "unknown_3"
String "unknown_5"

Пример

Удаление элемента из изменяемой карты со значением по умолчанию:

kotlinval map = mutableMapOf("a" to 1, "b" to 2, "c" to 3).withDefault { 0 }

map.remove("b")
println(map.getValue("a"))
println(map.getValue("b"))

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

kotlinInt 1
Int 0

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

  • интерфейс Map,
    базовый интерфейс для неизменяемых карт
  • интерфейс MutableMap,
    интерфейс для изменяемых карт
  • интерфейс MapWithDefault,
    интерфейс для неизменяемых карт со значением по умолчанию
  • класс HashMap,
    реализация хэш-карты в Kotlin