Функция 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-стилем