MutableMapWithDefault
Интерфейс MutableMapWithDefault расширяет базовый интерфейс
MutableMap и добавляет возможность возврата значения
по умолчанию для ключей, которые отсутствуют в карте.
Это позволяет избежать исключений при обращении к несуществующим ключам
и предоставляет гибкий механизм обработки отсутствующих значений.
Импорт
import kotlin.collections.MutableMapWithDefault
Синтаксис
interface MutableMapWithDefault<K, V> : MutableMap<K, V>, MapWithDefault<K, V>
Создание MutableMapWithDefault
Для создания изменяемой карты со значением по умолчанию
используется функция mutableMapOf с последующим вызовом
withDefault:
val map = mutableMapOf("a" to 1, "b" to 2).withDefault { key -> 0 }
Пример
Создадим изменяемую карту со значением по умолчанию 0
и обратимся к существующему и несуществующему ключу:
val map = mutableMapOf("a" to 1, "b" to 2).withDefault { 0 }
println(map.getValue("a"))
println(map.getValue("c"))
Результат выполнения кода:
Int 1
Int 0
Пример
Добавим новый элемент в изменяемую карту со значением по умолчанию:
val map = mutableMapOf("a" to 1).withDefault { 0 }
map["b"] = 2
println(map.getValue("b"))
println(map.getValue("c"))
Результат выполнения кода:
Int 2
Int 0
Пример
Использование сложной логики для генерации значения по умолчанию:
val map = mutableMapOf(1 to "apple", 2 to "banana")
.withDefault { key -> "unknown_$key" }
println(map.getValue(3))
println(map.getValue(5))
Результат выполнения кода:
String "unknown_3"
String "unknown_5"
Пример
Удаление элемента из изменяемой карты со значением по умолчанию:
val map = mutableMapOf("a" to 1, "b" to 2, "c" to 3).withDefault { 0 }
map.remove("b")
println(map.getValue("a"))
println(map.getValue("b"))
Результат выполнения кода:
Int 1
Int 0
Смотрите также
-
интерфейс
Map,
базовый интерфейс для неизменяемых карт -
интерфейс
MutableMap,
интерфейс для изменяемых карт -
интерфейс
MapWithDefault,
интерфейс для неизменяемых карт со значением по умолчанию -
класс
HashMap,
реализация хэш-карты в Kotlin