如何将包含列表的Java Map转换为Scala地图

时间:2019-07-10 15:53:55

标签: java scala dictionary types

斯卡拉2.11 有一个jmap类型的变量:

val jmap: java.util.Map[String, java.util.List[Double]]

jmap被转换为Scala地图:

val smap: Map[String, java.util.List[Double]] = jmap.asScala.toMap

目的是将其转换为Scala中的Map[String, List[Double]] 我找到了这个过程:

smap.mapValues(_.asScala.toList)

但是不幸的是,它生成MapLike而不是所需的类型Map[String, List[Double]]

1 个答案:

答案 0 :(得分:2)

在Scala 2.13中尝试

import scala.jdk.CollectionConverters._

val smap: Map[String, List[Double]] = jmap.asScala.view.mapValues(_.asScala.toList).toMap

在Scala 2.11中尝试

import scala.collection.JavaConverters._

val smap: Map[String, List[Double]] = jmap.asScala.mapValues(_.asScala.toList).toMap