【问题标题】:Convert Scala ArrayBuffer to Iterator将 Scala ArrayBuffer 转换为迭代器
【发布时间】:2016-10-25 14:54:09
【问题描述】:

我有一个接受输入的 Scala 方法,根据这些输入创建一个 ArrayBuffer[Widget],但随后必须将该数组缓冲区转换为 Iterator[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
}

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

【问题讨论】:

    标签: scala collections


    【解决方案1】:

    在数组缓冲区上使用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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-02
      • 2011-11-25
      • 1970-01-01
      • 2020-05-18
      • 1970-01-01
      • 2016-12-14
      • 2021-08-26
      • 2010-10-19
      相关资源
      最近更新 更多