Idiomatic way to collect even to odd elements from a list to map in Kotlin

Viewed 434

I need to get a map from a list where all even elements should become keys and all odds - values:

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]
}

Is there any more idiomatic way to do it in Kotlin?

1 Answers

Code:

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

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

println(map)

Output:

{k1=v1, k2=v2, k3=v3}
Related