我想将Map<DAO, Int>
映射到Map<String, Boolean>
,但我无法在地图功能中返回Map.Entry:
itemsWithQuantity.mapTo(mutableMapOf<String, Boolean>(), { it.key.toString() to it.value != 0 })
(当然我使用的是更复杂的映射函数,但它没关系,问题是一样的)
它说
MutableMap<String, Boolean> is not a subtype of MutableCollection<Pair<String, Boolean>>.
那么如何返回Map.Entry而不是Pair?
现在我这样做:
val detailsIds = mutableMapOf<String, Boolean>()
itemsWithQuantity.forEach { item, quantity -> detailsIds.put(it.key.toString(), it.value != 0) }
但我想使用mapTo
答案 0 :(得分:13)
改为使用associateTo
:
xs.associateTo(mutableMapOf<String, Boolean>(), { "${it.key}" to (it.value != 0) })
另外,请注意it.value != 0
附近的括号。
mapTo
功能与map
类似,不会将结果收集到Map
,而是与Collection
一起使用,期望您提供MutableCollection<Pair<String, Boolean>>
。