Функция buildMap

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

Импорт

kotlinimport kotlin.collections.buildMap

Синтаксис

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

Пример

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

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

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

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

Пример

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

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

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

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

Пример

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

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

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

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

Пример

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

kotlinval 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)

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

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

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

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