可以说我有以下列表:斯卡拉转换地图列表基于地图键映射列出
val myList = List(Map(1 -> 1), Map(2 -> 2), Map(2 -> 7))
我想这个列表转换为Int的单一地图 - >目录(智力)。如果我们有重复的键,那么这两个值应该包含在结果值列表中。
Map(2 -> List(7,2),1 -> List(1))
我想出了这个工作解决方案,但它似乎过度和笨重。
myList.foldLeft(scala.collection.mutable.Map[Int,List[Int]]()) {(result,element) =>
for((k,v) <- element) {
if (result.keySet.contains(k)) {
result(k) = result(k).:: (v)
} else {
result += (k -> List(v))
}
}
result
}
这里有更好或更有效的方法吗?