将Scala ArrayBuffer转换为迭代器
我有一个Scala方法,它接受输入,基于这些输入创建一个将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
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
}