【发布时间】:2013-02-23 19:41:14
【问题描述】:
如何在 Scala 中以一种很好的方式将两个 MultiMap 与值集上的并集结合起来?
我目前这样做(假设 mm1 和 mm2 是具有相同类型的 MultiMap):
val tempmm = (mm1.keySet union mm2.keySet).
map{k=>(k,(mm1.getOrElse(k,Set()) union mm2.getOrElse(k,Set())))}
tempmm.foreach{case (k,v) => mm1(k)=v}
现在我在 mm1 中得到了正确的结果。但我相信一定有更好的方法。甚至可能是 MultiMap 中的一个函数。
【问题讨论】:
-
stackoverflow.com/questions/7755214/scala-merge-maps-by-key 在这里可能有用。很高兴在基本 Map 特征中看到
unionWith、intersectionWith,但 scalaz 解决方案可能适用于您的情况。
标签: scala