Функция mapValues
Функция mapValues применяет указанное преобразование
к каждому значению в исходной Map и возвращает новую Map
с теми же ключами, но с преобразованными значениями.
Исходная Map при этом не изменяется.
Функция работает только с типами Map.
Синтаксис
inline fun <K, V, R> Map<out K, V>.mapValues(
transform: (Entry<K, V>) -> R
): Map<K, R>
Пример
Увеличим каждое значение в Map на 10:
val numbers = mapOf("a" to 1, "b" to 2, "c" to 3)
val res = numbers.mapValues { it.value + 10 }
println(res)
Результат выполнения кода:
Map {a=11, b=12, c=13}
Пример
Преобразуем строковые значения в верхний регистр:
val words = mapOf(1 to "apple", 2 to "banana", 3 to "cherry")
val res = words.mapValues { it.value.uppercase() }
println(res)
Результат выполнения кода:
Map {1=APPLE, 2=BANANA, 3=CHERRY}
Пример
Использование ключа и значения вместе в преобразовании:
val data = mapOf("x" to 5, "y" to 10, "z" to 15)
val res = data.mapValues { (key, value) -> "$key:${value * 2}" }
println(res)
Результат выполнения кода:
Map {x=x:10, y=y:20, z=z:30}
Пример
Работа с изменяемой Map:
val mutableMap = mutableMapOf("first" to 100, "second" to 200)
val res = mutableMap.mapValues { it.value / 10 }
println("Original: $mutableMap")
println("Transformed: $res")
Результат выполнения кода:
Original: {first=100, second=200}
Transformed: {first=10, second=20}
Смотрите также
-
функцию
mapKeys,
которая преобразует ключи Map -
функцию
map,
которая преобразует элементы коллекций -
функцию
filterValues,
которая фильтрует значения Map -
функцию
forEach,
которая выполняет действие для каждого элемента