How to combine 2 maps into a third map in Scala

3 Answers

0 votes
val map1 = Map("a" -> 1, "b" -> 2)
val map2 = Map("b" -> 999, "c" -> 4, "d" -> 5)

val combined = map1 ++ map2

println(combined) 


 
/*
run:
  
Map(a -> 1, b -> 999, c -> 4, d -> 5)
  
*/

 



answered Aug 26, 2025 by avibootz
0 votes
val map1 = Map("a" -> 1, "b" -> 2)
val map2 = Map("b" -> 999, "c" -> 4, "d" -> 5)

val combined = (map1.keySet ++ map2.keySet).map { key =>
  val v1 = map1.getOrElse(key, 0)
  val v2 = map2.getOrElse(key, 0)
  key -> (v1 + v2)
}.toMap

println(combined) 


 
/*
run:
  
Map(a -> 1, b -> 1001, c -> 4, d -> 5)
  
*/

 



answered Aug 26, 2025 by avibootz
0 votes
val map1 = Map("a" -> 1, "b" -> 2)
val map2 = Map("b" -> 999, "c" -> 4, "d" -> 5)

val combined = map2.foldLeft(map1) {
  case (acc, (key, value)) =>
    acc.updated(key, acc.getOrElse(key, 0) + value)
}

println(combined) 


 
/*
run:
  
Map(a -> 1, b -> 1001, c -> 4, d -> 5)
  
*/

 



answered Aug 26, 2025 by avibootz

Related questions

1 answer 125 views
1 answer 101 views
3 answers 142 views
1 answer 98 views
3 answers 254 views
...