您可以使用JavaConversions 允许通过toMap 将java.util.Map 转换为scala.collection.immutable.Map。至于从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))