【发布时间】:2019-11-20 07:16:14
【问题描述】:
斯卡拉 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]]
【问题讨论】:
-
你使用的是 scala 2.12 还是 2.13?
-
您应该能够通过使用额外的
.toMap获得Map而不是MapLike -
注意:转换为 Scala
List非常重要;它不是与java.util.List对应的抽象数据类型。除非你特别需要,否则我更喜欢toSeq。 -
无法重现 scala 2.12 的问题。没关系。 Scala 2.13 说结果类型是
MapView,而不是MapLike,但解决了@XavierGuihot
标签: java scala dictionary types