需求:有两个map如下,将两个map整合到一起,相同key的value值相加
思路:因为最后是要得到一个map,那么返回值肯定是map。用flod折叠,让map1和map2每个键值对进行计算得到一个map,然后再和下一个元素计算,最终得到一个map。这里map里的每一个元素 既是map又是元祖,所以()里边可以那样写
object Method4_reduce2 {
def main(args: Array[String]): Unit = {
val map1: mutable.Map[String, Int] = mutable.Map("a" -> 1, "b" -> 2, "c" -> 3)
val map2: mutable.Map[String, Int] = mutable.Map("a" -> 3, "d" -> 1, "c" -> 2)
//需求将两个map进行合并 相同的key的value相加
val stringToInt: mutable.Map[String, Int] = map1.foldLeft(map2)((map, t) => {
val i: Int = map.getOrElse(t._1, 0)
if (i == 0) {
map(t._1) = t._2
} else {
map(t._1) = i + t._2
}
map
})
println(stringToInt)
}
}