НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
414 of 1310 menu

Функция associateBy

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

Импорт

import kotlin.collections.associateBy

Синтаксис

// Для Iterable, Array, List, Set inline fun <T, K> Iterable<T>.associateBy( keySelector: (T) -> K ): Map<K, T> // Для Map inline fun <K, V, R> Map<out K, V>.associateBy( keySelector: (Entry<K, V>) -> R ): Map<R, Entry<K, V>>

Пример

Создадим отображение из списка строк, где ключом будет первый символ каждой строки:

val list = listOf("apple", "banana", "cherry", "date") val res = list.associateBy { it.first() } println(res)

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

Map {a=apple, b=banana, c=cherry, d=date}

Пример

Создадим отображение из массива чисел, где ключом будет остаток от деления на 3:

val array = arrayOf(1, 2, 3, 4, 5, 6, 7, 8, 9) val res = array.associateBy { it % 3 } println(res)

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

Map {1=7, 2=8, 0=9}

Пример

Работа с множеством Set. Создадим отображение, где ключ - длина строки:

val set = setOf("one", "two", "three", "four", "five") val res = set.associateBy { it.length } println(res)

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

Map {3=five, 5=three, 4=four}

Пример

Преобразование Map с использованием associateBy. Создадим новое отображение, где ключом будет значение, умноженное на 2:

val map = mapOf("a" to 1, "b" to 2, "c" to 3) val res = map.associateBy { it.value * 2 } println(res)

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

Map {2=(a=1), 4=(b=2), 6=(c=3)}

Для каких коллекций работает

Функция associateBy доступна для следующих типов коллекций:

  • Array - массивы
  • List - списки
  • Set - множества
  • Map - отображения
  • Iterable - любые итерируемые коллекции

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

  • функцию associate,
    которая создает отображение с произвольными ключами и значениями
  • функцию associateWith,
    которая использует элементы как ключи, а значения формирует функцией
  • функцию groupBy,
    которая группирует элементы по ключу в списки
  • функцию toMap,
    которая преобразует коллекцию пар в отображение
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить