buildMap
inline fun <K, V> buildMap( builderAction: MutableMap<K, V>.() -> Unit ): Map<K, V>
Создаёт новую неизменяемую Map, заполняя MutableMap с помощью заданного builderAction и возвращая неизменяемую карту с теми же парами ключ-значение.
Карта, переданная в качестве получателя в builderAction, действительна только внутри этой функции. Использование её вне функции приводит к неопределённому поведению.
Элементы карты итерируются в том порядке, в котором они были добавлены в builderAction.
Возвращаемая карта сериализуема (JVM).
fun main(args: Array<String>) {
//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
}inline fun <K, V> buildMap( capacity: Int, builderAction: MutableMap<K, V>.() -> Unit ): Map<K, V>
Создаёт новую неизменяемую Map, заполняя MutableMap с помощью заданного builderAction и возвращая неизменяемую карту с теми же парами ключ-значение.
Карта, переданная в качестве получателя в builderAction, действительна только внутри этой функции. Использование её вне функции приводит к неопределённому поведению.
capacity используется для указания предполагаемого количества пар, добавляемых в builderAction.
Элементы карты итерируются в том порядке, в котором они были добавлены в builderAction.
Возвращаемая карта сериализуема (JVM).
fun main(args: Array<String>) {
//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
}Исключения
IllegalArgumentException - если заданный capacity отрицательный.
© 2010–2022 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/build-map.html