我在Scala中有以下结构:
import java.util.ArrayList
val array = new ArrayList[ArrayList[String]]
// ... add values to array
现在,我需要将其转换为Seq[Seq[String]]
,如何实现?
答案 0 :(得分:2)
您可以执行以下操作,
import scala.collection.JavaConversions._
val array = new ArrayList[ArrayList[String]]
val seq: Seq[Seq[String]] = array.map(_.toSeq)
...
让我知道这是否有帮助,干杯。
答案 1 :(得分:1)
使用显式转换的第二种解决方案:
import scala.collection.JavaConverters._
import java.util.ArrayList
val array = new ArrayList[ArrayList[String]]
// Mutable, default conversion for java.util.ArrayList
val mutableSeq : Seq[Seq[String]] = array.asScala.map( _.asScala)
// Immutable, using toList on mutable conversion result
val immutableSeq : Seq[Seq[String]] = array.asScala.toList.map( _.asScala.toList)
为了阐明Java JavaConverters和JavaConversions之间的区别,请阅读:
What is the difference between JavaConverters and JavaConversions in Scala?
答案 2 :(得分:0)
scala.collection.JavaConverters._
已弃用。
最新的方法是:
import scala.collection.JavaConversions._
val a = asScalaBuffer(array)
现在您可以将 a 转换为任何集合
to toBuffer toIterable toList toParArray toSet toString toVector
toArray toIndexedSeq toIterator toMap toSeq toStream toTraversable
喜欢这个
val b = a.toSeq
Here 是一个完整的教程