如何以一种很好的方式将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中的一个功能。

最佳答案

要将mm2合并为mm1,可以执行以下操作:

for ( (k, vs) <- mm2; v <- vs ) mm1.addBinding(k, v)

关于scala - 在Scala中合并两个MultiMap,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15022264/

10-09 15:24