Стажировка
Открыта запись на бесплатный пробный месяц! Жми для подробностей! →
410 of 1310 menu
Бесплатный курс: Практика на Реальных Проектах и Работы в Портфолио! Мы уже начали, но можно присоединится! Жми для записи!

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