如何在Scala中将List [java.util.Map]转换为List [Map]?
oldList:
List[java.util.Map[String,String]]
wantList:
List[Map[String,String]]
我应该新建一个List [Map]并循环oldList吗?
谢谢!
答案 0 :(得分:2)
在Scala集合包中使用转换器方法。这是一个演示如何转换的示例:
import scala.collection.JavaConverters._
oldList: List[java.util.Map[String,String]]
wantedList= oldList.asScala
<强>编辑:强>
弗拉基米尔·马特维耶夫提到wantedList=oldList.map(_.asScala)
答案 1 :(得分: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]] = ()
答案 2 :(得分:0)
JavaConverters自Scala 2.9.0以来已被弃用,并已在Scala 2.11-M1 中删除,您不应使用它们。相反,有一个包scala.collection.convert
的模块WrapAsScala
。它有一个隐式转换dictionaryAsScalaMap