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

Функция associate

Функция associate преобразует элементы коллекции в пары ключ-значение и создает из них ассоциативный массив типа Map. Функция принимает лямбда-функцию, которая для каждого элемента исходной коллекции возвращает пару Pair<K, V>, где K - тип ключа, V - тип значения.

Импорт

import kotlin.collections.associate

Синтаксис

inline fun <T, K, V> Iterable<T>.associate( transform: (T) -> Pair<K, V> ): Map<K, V>
inline fun <T, K, V> Array<T>.associate( transform: (T) -> Pair<K, V> ): Map<K, V>

Поддерживаемые типы коллекций

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

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

Пример

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

val numbers = listOf(1, 2, 3, 4, 5) val squaredMap = numbers.associate { it to it * it } println(squaredMap)

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

Map {1=1, 2=4, 3=9, 4=16, 5=25}

Пример

Создадим Map из массива символов, где ключом будет символ, а значением - его позиция в алфавите:

val chars = arrayOf('a', 'b', 'c', 'd', 'e') val positionMap = chars.associate { char -> char to (char - 'a' + 1) } println(positionMap)

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

Map {a=1, b=2, c=3, d=4, e=5}

Пример

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

val words = setOf("apple", "banana", "cherry", "date") val firstCharMap = words.associate { word -> word.first() to word } println(firstCharMap)

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

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

Важное замечание

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

val items = listOf("apple", "avocado", "banana", "berry") val resultMap = items.associate { item -> item.first() to item } println(resultMap)

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

Map {a=avocado, b=banana, e=berry}

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

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