JavaConversions
java.util.Map
scala.collection.immutable.Map
toMap
List of Map[K, V]
Map[K, List[V]]
groupBy-mapValues
val l: List[java.util.Map[String,String]] = List(
new java.util.HashMap[String, String] { put("id", "1000"); put("sId", "1") },
new java.util.HashMap[String, String] { put("id", "2000"); put("sId", "1") },
new java.util.HashMap[String, String] { put("id", "3000"); put("sId", "2") },
new java.util.HashMap[String, String] { put("id", "3000"); put("sId", "1") }
)
// l: List[java.util.Map[String,String]] =
// List({id=1000, sId=1}, {id=2000, sId=1}, {id=3000, sId=2}, {id=3000, sId=1})
import scala.collection.JavaConversions._
l.map(_.toMap.toList.map(_._2)).
groupBy(_(0)).
mapValues(_.map(_(1)))
// res1: scala.collection.immutable.Map[String,List[String]] =
// Map(3000 -> List(2, 1), 1000 -> List(1), 2000 -> List(1))