Scala 将Java列表转换为Scala迭代器的程序
可以通过利用Scala中Java中的 toIterator 方法,将Java列表转换为Scala迭代器。在此处,我们需要导入Scala的 JavaConversions 对象以使此转换工作,否则会发生错误。现在,让我们看一些例子,然后详细讨论它的工作原理。
例子:1 #
//Scala程序,转换Java列表
//Scala中的迭代器
//导入Scala的JavaConversions对象
import scala.collection.JavaConversions._
//创建对象
object GfG
{
// 主要的方法
def main(args:Array[String])
{
//在Java中创建列表
val list = new java.util.ArrayList[Int]()
//向列表中添加整数
list.add(5)
list.add(6)
//将列表转换为一个迭代器
val iter = list.toIterator
//显示输出
println(iter)
}
}
输出:
非空的迭代器
时间复杂度:O(1) 因为唯一执行的操作是创建一个新的Java ArrayList并向其中添加两个元素,这两个元素都是常量时间操作。 toIterator方法的复杂度也是常量时间,因为它只是返回列表元素的迭代器。
空间复杂度:O(1) 因为仅使用少量整数和对Java ArrayList和迭代器的引用,无论输入大小如何,它们的大小都是常量。
因此,返回一个非空的迭代器。首先创建一个列表,然后利用add方法添加int元素。然后使用toIterator方法将所述列表转换为迭代器。
示例:2#
// Scala程序,将Java列表转换为Scala中的迭代器
// 导入Scala的JavaConversions对象
import scala.collection.JavaConversions._
// 创建对象
object GfG
{
// 主要方法
def main(args:Array[String])
{
// 在Java中创建列表
val list = new java.util.ArrayList[Int]()
// 将列表转换为迭代器
val iter = list.toIterator
//显示输出
println(iter)
}
}
输出:
空的迭代器
时间复杂度:O(1) 因为唯一执行的操作是创建一个新的Java ArrayList和toIterator方法,这两个操作都是常量时间的。 toIterator方法的复杂度也是常量时间,因为它只是返回列表元素的迭代器
空间复杂度:O(1) 因为仅使用指向Java ArrayList和迭代器的引用,无论输入大小如何,它们都是恒定的大小。
与上面的示例相同,但这里返回一个空的迭代器,因为该列表为空。