I'm merging these maps :
val map1 : Map[String, String] = Map("four" -> "1", "three" -> "2");
val map2 : Map[String, String] = Map("four" -> "3", "three" -> "4");
val map3 : Map[String, String] = Map("four" -> "5", "three" -> "6");
val map4 : Map[String, String] = Map("four" -> "7", "three" -> "8");
using loops and mutable variables.
I'm not sure how to write a functional implementation ?
Complete code :
object tryout extends App {
val map1 : Map[String, String] = Map("four" -> "1", "three" -> "2");
val map2 : Map[String, String] = Map("four" -> "3", "three" -> "4");
val map3 : Map[String, String] = Map("four" -> "5", "three" -> "6");
val map4 : Map[String, String] = Map("four" -> "7", "three" -> "8");
val mapList : List[Map[String , String]] = List(map1 , map2 , map3 , map4)
val mergedMap: Map[String, List[String]] = Map("three" -> List("2","4","6","8") ,
"four" -> List("1","3","5","7"));
val map = new scala.collection.mutable.HashMap[String,ListBuffer[String]]()
mapList.map(m => {
m.map(m2 => {
if(map.contains(m2._1)){
val lb = map.get(m2._1).get
lb += m2._2
}
else {
map.put(m2._1, ListBuffer(m2._2))
}
})
})
map.foreach(m => println(m._1+","+m._2.mkString(",")))
}