Scala 将Java整数列表转换为Scala Indexed Sequence的程序
Scala是一款运行在Java虚拟机上的编程语言,它可以跟Java进行混编,使用Java的库或者在Java中使用Scala的库都是可以的。在我们使用Java写业务代码时,有时候需要将Java的类型转换为Scala的类型,这里我们就来看看如何将Java的整数列表(List
Java整数列表定义
Java中的整数列表是通过List
List<Integer> javaList = new ArrayList<>();
javaList.add(1);
javaList.add(2);
javaList.add(3);
Scala Indexed Sequence定义
Scala中的Indexed Sequence是可以通过Array或者Vector来表示的,这里我们以Vector为例,定义一个空的Vector。
import scala.collection.immutable.Vector
val scalaSeq = Vector.empty[Int];
将Java整数列表转换为Scala Indexed Sequence
Java中的整数列表转换为Scala Indexed Sequence有两种方法,一种是使用JavaConversions库,它提供了将Java的集合类型转化为Scala的集合类型的方法,另一种是使用JavaConverters库,它提供了将Java的集合类型转化为Scala的集合类型的方法,并且可以进行类型安全的转换。
使用JavaConversions
使用JavaConversions库来进行Java列表转换为Scala Indexed Sequence的过程如下所示:
import scala.collection.JavaConversions._
val scalaSeq = javaList.toVector
使用JavaConverters
使用JavaConverters库来进行Java列表转换为Scala Indexed Sequence的过程如下所示:
import scala.collection.JavaConverters._
val scalaSeq = javaList.asScala.toVector
完整代码
import scala.collection.JavaConversions._
import scala.collection.JavaConverters._
import scala.collection.immutable.Vector
object JavaList2ScalaSeq {
def main(args: Array[String]): Unit = {
// Java List
val javaList = new java.util.ArrayList[Int]()
javaList.add(1)
javaList.add(2)
javaList.add(3)
println("Java List: " + javaList)
// Convert Java list to Scala Indexed Sequence
val scalaSeq1 = javaList.toVector
println("Use JavaConversions: " + scalaSeq1)
// Convert Java list to Scala Indexed Sequence
val scalaSeq2 = javaList.asScala.toVector
println("Use JavaConverters: " + scalaSeq2)
}
}
结论
本文介绍了如何将Java列表(List