3

如何以一种很好的方式将 Scala 中的两个 MultiMap 与值集上的联合结合起来?

我目前这样做(假设 mm1 和 mm2 是具有相同类型的 MultiMaps):

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 中的一个函数。

4

1 回答 1

3

要合并mm2mm1,您可以这样做:

for ( (k, vs) <- mm2; v <- vs ) mm1.addBinding(k, v)
于 2013-02-22T11:50:37.583 回答