scala Map集合之间合并

本文介绍在Scala中如何合并两个Map集合。通过两种方法实现:使用foldLeft方法遍历第一个Map并将其值累加到第二个Map的对应键上;直接使用foldLeft简化代码。最终输出合并后的Map集合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

scala outline

scala outline

scala Map集合之间合并

需求:现有两个集合

val map1 = mutable.Map[String, Int](“a” -> 1, “b” -> 2, “c” -> 3)
val map2 = mutable.Map[String, Int](“a” -> 4, “b” -> 5, “c” -> 6)

现需要将两个集合的元素进行合并,输出形式如下:

Map(b -> 7, a -> 5, c -> 9)

方法1:

  def main(args: Array[String]): Unit = {
    val map1 = mutable.Map[String, Int]("a" -> 1, "b" -> 2, "c" -> 3)
    val map2 = mutable.Map[String, Int]("a" -> 4, "b" -> 5, "c" -> 6)
    // 集合之间合并 选择fold 或者foldLeft 或者foldRight
    val res: mutable.Map[String, Int] = map1.foldLeft(map2)((map2, kv) => { // kv属于map1
      // 指定合并规则
      val k: String = kv._1
      val v: Int = kv._2
      // 根据map1中元素的key,到map2中获取value
      map2(k) = map2.getOrElse(k, 0) + v
      map2
    })
    println(res)
  }

方法2:

    val res: mutable.Map[String, Int] = map1.foldLeft(map2) {
      case (map2, (k, v)) => {
        map2(k) = map2.getOrElse(k, 0) + v
        map2
      }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值