АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP, Python или фреймворки. Сегодня последний день для записи! Жми!
409 of 1310 menu
Бесплатный тренинг по PHP: форматирование строк. Начало 25 сентября. Жми для записи!

Функция mapKeys

Функция mapKeys применяет указанную функцию-трансформатор к каждой паре ключ-значение исходной Map и возвращает новую Map, где ключи преобразованы согласно функции-трансформатору, а значения остаются неизменными. Работает только с типами Map.

Синтаксис

inline fun <K, V, R> Map<out K, V>.mapKeys( transform: (Entry<K, V>) -> R ): Map<R, V>
inline fun <K, V, R> Map<out K, V>.mapKeys( destination: MutableMap<R, V>, transform: (Entry<K, V>) -> R ): MutableMap<R, V>

Пример

Преобразуем ключи Map из строк в их длины:

val map = mapOf("apple" to 1, "banana" to 2, "cherry" to 3) val res = map.mapKeys { it.key.length } println(res)

Результат выполнения кода:

Map {5=1, 6=2, 6=3}

Пример

Преобразуем ключи Map с использованием полного синтаксиса:

val map = mapOf("a" to 10, "b" to 20, "c" to 30) val res = map.mapKeys { entry -> "key_${entry.key}" } println(res)

Результат выполнения кода:

Map {"key_a"=10, "key_b"=20, "key_c"=30}

Пример

Использование функции с указанием целевой Map:

val source = mapOf(1 to "one", 2 to "two", 3 to "three") val destination = mutableMapOf<String, String>() val res = source.mapKeys(destination) { "num_${it.key}" } println(res)

Результат выполнения кода:

MutableMap {"num_1"="one", "num_2"="two", "num_3"="three"}

Пример

Преобразование ключей с изменением типа:

val map = mapOf(1 to "alpha", 2 to "beta", 3 to "gamma") val res = map.mapKeys { it.key.toDouble() } println(res)

Результат выполнения кода:

Map {1.0="alpha", 2.0="beta", 3.0="gamma"}

Для каких типов работает

Функция mapKeys работает только с типами:

  • Map
  • MutableMap
  • HashMap
  • LinkedHashMap
  • SortedMap

Не работает с: Array, List, Set и другими типами коллекций.

Смотрите также

  • функцию mapValues,
    которая преобразует значения Map
  • функцию map,
    которая преобразует элементы коллекций
  • функцию filterKeys,
    которая фильтрует Map по ключам
  • функцию associate,
    которая создает Map из коллекции