buildMap
@ExperimentalStdlibApi inline fun <K, V> buildMap( builderAction: MutableMap<K, V>.() -> Unit ): Map<K, V>
Создаёт новый неизменяемый Map, заполняя MutableMap с помощью заданного builderAction и возвращая неизменяемый map с теми же парами ключ-значение.
Map, переданный в качестве получателя в builderAction, допустим только внутри этой функции. Его использование вне функции приводит к неопределённому поведению.
Элементы карты итерируются в порядке, в котором они были добавлены builderAction.
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
}@ExperimentalStdlibApi inline fun <K, V> buildMap( capacity: Int, builderAction: MutableMap<K, V>.() -> Unit ): Map<K, V>
Создаёт новый неизменяемый Map, заполняя MutableMap с помощью заданного builderAction и возвращая неизменяемый map с теми же парами ключ-значение.
The map passed as a receiver to the builderAction is valid only inside that function. Using it outside of the function produces an unspecified behavior.
Объём используется для указания ожидаемого количества пар, добавляемых в builderAction.
Элементы карты итерируются в порядке, в котором они были добавлены builderAction.
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 - если заданный Объём отрицательный.
© 2010–2020 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