Функция getOrDefault
Функция getOrDefault возвращает значение
по указанному ключу, если ключ присутствует
в коллекции. Если ключ отсутствует, то возвращается
заданное значение по умолчанию. Функция применяется
к интерфейсу Map и его реализациям.
Синтаксис
fun <K, V> Map<K, V>.getOrDefault(key: K, defaultValue: V): V
Параметры
-
key- ключ, по которому осуществляется поиск значения -
defaultValue- значение, которое возвращается, если ключ не найден
Возвращаемое значение
Значение типа V, соответствующее ключу key,
или defaultValue, если ключ не найден.
Пример
Получим значение по существующему ключу:
val map = mapOf("a" to 1, "b" to 2, "c" to 3)
val res = map.getOrDefault("b", 0)
println(res)
Результат выполнения кода:
Int 2
Пример
Получим значение по несуществующему ключу:
val map = mapOf("a" to 1, "b" to 2, "c" to 3)
val res = map.getOrDefault("x", 0)
println(res)
Результат выполнения кода:
Int 0
Пример
Использование со строковыми значениями:
val map = mapOf(1 to "apple", 2 to "banana", 3 to "cherry")
val res = map.getOrDefault(5, "not found")
println(res)
Результат выполнения кода:
String "not found"
Пример
Использование с изменяемой картой MutableMap:
val mutableMap = mutableMapOf('x' to 10, 'y' to 20, 'z' to 30)
val res = mutableMap.getOrDefault('w', 100)
println(res)
Результат выполнения кода:
Int 100
Для каких коллекций работает
Функция getOrDefault работает со следующими типами коллекций:
Map- интерфейс карты (ассоциативного массива)MutableMap- изменяемая картаHashMap- хэш-картаLinkedHashMap- связанная хэш-картаSortedMap- отсортированная картаTreeMap- древовидная карта
Функция не работает с массивами Array, списками List,
множествами Set и другими типами коллекций, кроме карт.