Запись на курсы по HTML, CSS, JavaScript, PHP, Python, фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
126 of 1310 menu
Бесплатный тренинг по PHP: форматирование строк. Начало 25 сентября. Жми для записи!

Функция buildMap

Функция buildMap создает новую неизменяемую карту типа Map с использованием лямбда-выражения для построения содержимого. Внутри лямбды доступен mutable builder типа MutableMap, который позволяет добавлять элементы через методы put и operator set.

Импорт

import kotlin.collections.buildMap

Синтаксис

inline fun <K, V> buildMap( builderAction: MutableMap<K, V>.() -> Unit ): Map<K, V>

Пример

Создадим карту с ключами типа String и значениями типа Int:

val map: Map<String, Int> = buildMap { put("one", 1) put("two", 2) put("three", 3) } println(map)

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

Map<String, Int> {one=1, two=2, three=3}

Пример

Использование оператора индексации для добавления элементов:

val map = buildMap { this["a"] = 10 this["b"] = 20 this["c"] = 30 } println(map)

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

Map<String, Int> {a=10, b=20, c=30}

Пример

Создание карты с разными типами ключей и значений:

val userMap = buildMap<Int, String> { put(1, "John") put(2, "Alice") put(3, "Bob") } println(userMap)

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

Map<Int, String> {1=John, 2=Alice, 3=Bob}

Пример

Использование всех доступных методов MutableMap внутри builder-лямбды:

val map = buildMap<String, List<Int>> { put("even", listOf(2, 4, 6)) put("odd", listOf(1, 3, 5)) putIfAbsent("prime", listOf(2, 3, 5)) } println(map)

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

Map<String, List<Int>> {even=[2, 4, 6], odd=[1, 3, 5], prime=[2, 3, 5]}

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

  • функцию mapOf,
    которая создает неизменяемую карту напрямую
  • функцию mutableMapOf,
    которая создает изменяемую карту
  • функцию emptyMap,
    которая создает пустую неизменяемую карту
  • функцию buildList,
    которая создает неизменяемый список с builder-стилем