scala - 在 Scala 中合并两个 MultiMap

标签 scala

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

最佳答案

要将 mm2 合并到 mm1 中,您可以这样做:

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

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

相关文章:

java - 在 Scala 中实现具有原始类型的方法

java - 将 Java 列表转换为 Scala 序列

scala - 如何展平使用 I/O 的嵌套 For Comprehension?

scala - "case id ~ username => _"在anorm中如何理解?

scala - Scala 中重写和继承的辅助构造函数

scala - 如何使用不可变的数据类型实现DFS

scala - 如何以功能风格粗化(而不是扁平化)列表?

scala - 无法使用 postman 执行本地主机 POST 调用( Play Framework 2.6)

java - 在 Scala 中删除对象

java - Mongo 2.6.x GridFS 和 java 驱动程序