Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Scala ArrayBuffer转换为迭代器_Scala_Collections - Fatal编程技术网

将Scala ArrayBuffer转换为迭代器

将Scala ArrayBuffer转换为迭代器,scala,collections,Scala,Collections,我有一个Scala方法,它接受输入,基于这些输入创建一个ArrayBuffer[Widget],但必须将该数组缓冲区转换为一个迭代器[Widget]: def createWidgetIterator(isFizz : Boolean, buzz : String) : Iterator[Widget] = { val widgetBuffer = new ArrayBuffer[Widget]() // ...Use some logic to add Widget inst

我有一个Scala方法,它接受输入,基于这些输入创建一个
ArrayBuffer[Widget]
,但必须将该数组缓冲区转换为一个
迭代器[Widget]

def createWidgetIterator(isFizz : Boolean, buzz : String) : Iterator[Widget] = {
    val widgetBuffer = new ArrayBuffer[Widget]()

    // ...Use some logic to add Widget instances to widgetBuffer
    // widgetBuffer += new Widget(...)     etc.

    // At this point widgetBuffer is full of Widget instances

    // TODO: Convert widgetBuffer to Iterator[Widget]
    val widgetIterator : Iterator[Widget] = null // ???

    widgetIterator
}

有人知道我如何进行这种类型的转换吗?

使用数组缓冲区上的
toIterator
获取迭代器

Scala REPL

scala> val ab = ArrayBuffer(1, 2)
ab: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2)

scala> ab.toIterator
res1: Iterator[Int] = non-empty iterator
为您的代码

def createWidgetIterator(isFizz : Boolean, buzz : String) : Iterator[Widget] = {
    val widgetBuffer = new ArrayBuffer[Widget]()
    widgetBuffer.toIterator
}