Функция putIfAbsent
Функция putIfAbsent добавляет пару ключ-значение
в словарь только в том случае, если указанный ключ
отсутствует в словаре. Если ключ уже существует,
функция возвращает текущее значение, связанное с ключом,
и не изменяет словарь. Если ключ отсутствует,
функция добавляет новую пару и возвращает null.
Синтаксис
fun putIfAbsent(key: K, value: V): V?
Пример
Добавим элемент в словарь, если ключ отсутствует:
val map = mutableMapOf("a" to 1, "b" to 2)
val res = map.putIfAbsent("c", 3)
println(map)
println(res)
Результат выполнения кода:
{a=1, b=2, c=3}
null
Пример
Попробуем добавить элемент с существующим ключом:
val map = mutableMapOf("a" to 1, "b" to 2)
val res = map.putIfAbsent("a", 10)
println(map)
println(res)
Результат выполнения кода:
{a=1, b=2}
1
Пример
Использование putIfAbsent с числовыми ключами:
val map = mutableMapOf(1 to "one", 2 to "two")
val res1 = map.putIfAbsent(3, "three")
val res2 = map.putIfAbsent(1, "first")
println(map)
println("Result 1: $res1")
println("Result 2: $res2")
Результат выполнения кода:
{1=one, 2=two, 3=three}
Result 1: null
Result 2: one
Пример
Работа с null значениями:
val map = mutableMapOf("a" to null, "b" to "value")
val res1 = map.putIfAbsent("a", "new value")
val res2 = map.putIfAbsent("c", "another value")
println(map)
println("Result 1: $res1")
println("Result 2: $res2")
Результат выполнения кода:
{a=null, b=value, c=another value}
Result 1: null
Result 2: null
Смотрите также
-
функцию
getOrPut,
которая получает значение или добавляет новое -
функцию
getOrDefault,
которая получает значение или возвращает значение по умолчанию -
функцию
getOrElse,
которая получает значение или вычисляет его через лямбду -
функцию
put,
которая добавляет или заменяет элемент в словаре