在scala中,如何以干净的惯用方式从Java迭代中初始化scala集合?
这是一个有点蹩脚的代码,采用功能较少的方法:
var collection = Seq[MyClass]()
while (iterator.hasNext) {
val asArray: Array[String] = iterator.next.toArray
val val2 = asArray(2)
val val3 = asArray(3)
collection = collection :+ new MyClass(val2, val3)
}
如何从Java迭代中初始化集合更具惯用性?
答案 0 :(得分:1)
import scala.collection.JavaConverters._
val collection = iterator.asScala.map{ x =>
val asArray = x.toArray
new MyClass(asArray(2), asArray(3))
}.toIndexedSeq
答案 1 :(得分:0)
如果您已导入如下所示的转换助手,Scala可以无缝转换为Java集合和从Java集合进行转换:
import scala.collection.JavaConversions._
val jl = new java.util.ArrayList[String]()
jl.add("Hello")
jl.add("There")
val collection = j1.map{ x => new MyClass(x(2), x(3)) }.toList