前言
前面写了Scala Map和Java Map之间进行相互转换操作,还想进一步探究一番,在Map中嵌套List,相当于两层进行转化。
实例
import java.util
import scala.collection.JavaConverters._
object TestScala00 {
def main(args:Array[String]) {
// scala map 转为Java map
var scalaMap: Map[String, List[Integer]] = Map(
"s1" -> List(1,2,3,4),
"s2" -> List(5,6,7,8),
"s3" -> List(5,6,7,8))
println("Scala 类型的Map:" + scalaMap)
val javaMap: util.Map[String, util.List[Integer]] = scalaMap.map(x=>{x._1 -> x._2.asJava}).asJava
println("Scala 类型的Map 转为 Java 类型的Map:" + javaMap)
scalaMap = javaMap.asScala.toMap.map(x=>{x._1 -> x._2.asScala.toList})
println("Java 类型的Map 转为 Scala 类型的Map:" + scalaMap)
}
}
结果展示
Scala 类型的Map:Map(s1 -> List(1, 2, 3, 4), s2 -> List(5, 6, 7, 8), s3 -> List(5, 6, 7, 8))
Scala 类型的Map 转为 Java 类型的Map:{s1=[1, 2, 3, 4], s2=[5, 6, 7, 8], s3=[5, 6, 7, 8]}
Java 类型的Map 转为 Scala 类型的Map:Map(s1 -> List(1, 2, 3, 4), s2 -> List(5, 6, 7, 8), s3 -> List(5, 6, 7, 8))