Функция 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
и другими типами коллекций, кроме карт.