通过键和sum来合并scala中的贴图或附加值

时间:2014-07-28 22:29:44

标签: scala map merge

我正在寻找一种合并地图的方法。每次我需要通过键合并地图时我都可以编写代码,但问题是对值的操作始终不同(对于字符串,int列表)

他们是这个问题的图书馆吗?

例如我的输入是:

  //value is int - need to sum the values
  val example1 = Map("a" -> 1 , "b" -> 1 , "c" -> 7)
  val example2 = Map("a" -> 1 , "e" -> 5 , "f" -> 2)

  //value is list - need to append 
  val example1 = Map("a" -> List(1) , "b" -> List(3) , "c" -> List(2))
  val example2 = Map("a" -> List(4) , "e" -> List(1) , "f" -> List(1))

  //value is string - nned to append
  val example1 = Map("a" -> "asd" , "b" -> "efd" , "c" ->  "sdf")
  val example2 = Map("a" -> "ads" , "e" -> "sdfds" , "f" -> "czxc2")

1 个答案:

答案 0 :(得分:6)

我写了一篇关于此的博文,请查看:

http://www.nimrodstech.com/scala-map-merge/

基本上使用scalaz semi group你可以轻松实现这个目标

看起来像是:

  import scalaz.Scalaz._
  example1 |+| example2