1

如何在 Scala 中将 List[java.util.Map] 转换为 List[Map]?

旧列表:

List[java.util.Map[String,String]]

通缉名单:

List[Map[String,String]]

我应该新建一个 List[Map] 并循环 oldList 吗?

谢谢!

4

3 回答 3

2

在 Scala 集合包中使用转换器方法。这是一个演示如何转换的示例:

import scala.collection.JavaConverters._

oldList: List[java.util.Map[String,String]]

wantedList= oldList.asScala

编辑:

正如弗拉基米尔·马特维耶夫所说

wantedList=oldList.map(_.asScala)
于 2013-07-23T05:43:35.320 回答
0

您可以使用scala.collection.JavaConversions静态方法。这个添加了来自标准 Java 集合的隐式转换,并允许您执行这样的事情(假设我们已经打开了 REPL 并导入了scala.collection.JavaConversions._):

scala > x
res1: java.util.HashMap[String,String] = {1=2}

scala> x.toMap
res2: scala.collection.immutable.Map[String,String] = Map(1 -> 2)

您可以按以下方式解决您的特定问题:

res5: list: List[java.util.HashMap[String, String]] = ()
scala > list.map(e => e.toMap)
res6: List[scala.collection.immutable.Map[String,String]] = ()
于 2013-07-23T05:53:24.173 回答
0

JavaConverters 自 Scala 2.9.0 起已弃用,并在Scala 2.11-M1中删除, 您不应该使用它们。相反,有一个scala.collection.convert带有模块的包WrapAsScala。它有一个隐式转换dictionaryAsScalaMap

于 2013-07-23T07:06:38.027 回答