Kotlin 有没有办法将 Map<K out T , List<V out T> 展平到 List<T>

svk*_*aka 1 kotlin

我想将地图转换为列表

例如我有

mapOf("a" to listOf(1,2),
      "b" to listOf(3,4)
)
Run Code Online (Sandbox Code Playgroud)

我希望结果是

listOf("a", 1, 2, "b", 3, 4)
Run Code Online (Sandbox Code Playgroud)

order 必须是 Key 及其值,Key 及其值,...

kotlin 中是否有一些功能可以帮助我解决这个问题?

Rol*_*and 8

我的第二个评论变体作为 a 的答案Map<String, List<Int>>

mapOf("a" to listOf(1,2),
      "b" to listOf(3,4))
     .flatMap { (key, values) -> listOf(key) + values }
Run Code Online (Sandbox Code Playgroud)

它给出了一个List<Any>键后跟它们的值。

此示例使用解构声明Map.flatMap.