Map.mapTo到另一个地图

我想映射Map<DAO, Int>Map<String, Boolean>但是我不能在map函数中返回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

使用associateTo来代替:

 xs.associateTo(mutableMapOf<String, Boolean>(), { "${it.key}" to (it.value != 0) }) 

另外,请注意it.value != 0的括号。

mapTo函数与map类似,不会将结果收集到Map ,而是与Collection ,期望您提供MutableCollection<Pair<String, Boolean>>