scala 两个Map 集合合并

//参考《快学scala》 集合操作 foldLeft page:180
package alogrithnm

import scala.collection.mutable.Map

object CombineTwoMap {

  def main(args: Array[String]): Unit = {

    val map1 = Map[String, Int]("a" -> 1, "b" -> 1, "c" -> 1)
//val map1 = Map[String, Int]("a" -> 1, "b" -> 1, "c" -> 1,"d"->1,"f"->1,"g"->1)
    val map2 = Map("a" -> 1, "z" -> 1, "c" -> 1, "d" -> 1)

    val result = combinerTwoMap(map1, map2)

    for ((k, v) <- result) {
      println(k + "  " + v)
    }
  }

  def combinerTwoMap(a: Map[String, Int], b: Map[String, Int]): Map[String, Int] = {
      (a /: b) {
        case (map, (k, v)) =>
          println(k + " " + v)
          map + (k -> (v + map.getOrElse(k, 0)))
        case _ =>
          println("not match")
          null
      }
    }
}

时间复杂度O(N)取决于size较小的那个map长度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值