可以說我有以下列表:斯卡拉轉換地圖列表基於地圖鍵映射列出
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
}
這裏有更好或更有效的方法嗎?