如何以很好的方式将Scala中的两个MultiMaps与值集合结合起来?
我目前这样做(给定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中的一个函数。
答案 0 :(得分:3)
要将mm2
合并到mm1
,您可以这样做:
for ( (k, vs) <- mm2; v <- vs ) mm1.addBinding(k, v)