pav*_*163 4 dictionary list kotlin
我正在尝试转换传统地图:
1 -> "YES",
2 -> "NO",
3 -> "YES",
...
Run Code Online (Sandbox Code Playgroud)
具有固定键的地图列表,例如:
[
<number -> 1,
answer -> "YES">,
<number -> 2,
answer -> "NO">,
...
]
Run Code Online (Sandbox Code Playgroud)
现在我有一个看起来不太好的解决方案,并且没有真正利用 Kotlin 的功能特性。我想知道是否有更清晰的解决方案:
fun toListOfMaps(map: Map<Int, String>): List<Map<String, Any>> {
val listOfMaps = emptyList<Map<String, Any>>().toMutableList()
for (entry in map) {
val mapElement = mapOf(
"number" to entry.component1(),
"answer" to entry.component2()
)
listOfMaps.add(mapElement)
}
return listOfMaps
}
Run Code Online (Sandbox Code Playgroud)
只需使用Map#map就足够了,例如:
fun toListOfMaps(map: Map<Int, String>): List<Map<String, Any>> {
// v--- destructuring `Map.Entry` here
return map.map { (number, answer) ->
mapOf("number" to number, "answer" to answer)
}
}
Run Code Online (Sandbox Code Playgroud)