将Java中java.util.HashMap<java.lang.String, java.util.List<java.lang.String>>
类型的变量转换为其Scala等效项的正确方法是什么:Map[Map[String, List[String]]]
? (使用Scala Map
,String
和List
)
我尝试使用import scala.collection.JavaConverters._
并执行JavaNestedMap.asScala
,但失败了。有没有一种聪明的方法(而不是有两个map
)?
答案 0 :(得分:2)
我知道没有单一的通话方式。
这在热循环中可能是低效的。配置文件如果结果太慢,那么您想直接使用构建器。
val in: JMap[JMap[String, String]] = ???
val out: Map[Map[String, String]] = in.asScala.mapValues(_.asScala)
val again: JMap[JMap[String, String]] = out.map(_.asJava).asJava
值得注意的是.asScala
为您提供了一个与java地图一致的可变地图。如果您想要获取不可变的地图,则需要拨打.toMap
后跟。