从列表中收集偶数到奇数元素以在 Kotlin 中映射的惯用方法

Ale*_*nov 2 kotlin

我需要从列表中获取地图,其中所有偶数元素都应成为键和所有赔率 - 值:

val elements = listOf("k1", "v1", "k2", "v2", "k3", "v3")
val myMap: MutableMap<String, String> = mutableMapOf()
for (i in elements.indices step 2) {
    myMap[elements[i]] = elements[i + 1]
}
Run Code Online (Sandbox Code Playgroud)

在 Kotlin 中有没有更惯用的方法来做到这一点?

Nik*_*nko 5

代码:

val elements = listOf("k1", "v1", "k2", "v2", "k3", "v3")

val map = elements.chunked(2) { it[0] to it[1] }.toMap()

println(map)
Run Code Online (Sandbox Code Playgroud)

输出:

{k1=v1, k2=v2, k3=v3}
Run Code Online (Sandbox Code Playgroud)