build Map
Начиная с Kotlin: 1.6
inline fun <K, V> buildMap(builderAction: MutableMap<K, V>.() -> Unit): Map<K, V>
Создаёт новое доступное только для чтения Map, заполняя MutableMap с помощью указанного builderAction, и возвращает доступное только для чтения отображение с теми же парами ключ-значение.
Отображение, переданное в качестве получателя в builderAction, действительно только внутри этой функции. Использование его за пределами функции приводит к неопределённому поведению.
Элементы отображения перебираются в том порядке, в котором они были добавлены с помощью builderAction.
Возвращённое отображение сериализуемо (JVM).
Примеры
fun main() {
//sampleStart
val x = mapOf('b' to 2, 'c' to 3)
val y = buildMap<Char, Int> {
put('a', 1)
put('c', 0)
putAll(x)
put('d', 4)
}
println(y) // {a=1, c=3, b=2, d=4}
//sampleEnd
}
inline fun <K, V> buildMap(capacity: Int, builderAction: MutableMap<K, V>.() -> Unit): Map<K, V>
Создаёт новое доступное только для чтения Map, заполняя MutableMap с помощью указанного builderAction, и возвращает доступное только для чтения отображение с теми же парами ключ-значение.
Отображение, переданное в качестве получателя в builderAction, действительно только внутри этой функции. Использование его за пределами функции приводит к неопределённому поведению.
capacity используется для указания ожидаемого количества пар, добавляемых в builderAction.
Элементы отображения перебираются в том порядке, в котором они были добавлены с помощью builderAction.
Возвращённое отображение сериализуемо (JVM).
Исключения
если указанная capacity отрицательна.
Примеры
fun main() {
//sampleStart
val x = mapOf('b' to 2, 'c' to 3)
val y = buildMap<Char, Int>(x.size + 2) {
put('a', 1)
put('c', 0)
putAll(x)
put('d', 4)
}
println(y) // {a=1, c=3, b=2, d=4}
//sampleEnd
}
© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/build-map.html