當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Scala collection.Iterator用法及代碼示例


用法 一

trait Iterator[+A] extends IterableOnce[A] with IterableOnceOps[A, Iterator, Iterator[A]]

迭代器是允許迭代一係列元素的數據結構。他們有一個 hasNext 方法來檢查是否有下一個元素可用,以及一個 next 方法返回下一個元素並推進迭代器。

迭代器是可變的:對它的大多數操作都會改變它的狀態。雖然它通常用於遍曆集合的元素,但它也可以在沒有任何集合支持的情況下使用(參見伴隨對象的構造函數)。

特別重要的是要注意,除非另有說明,調用方法後永遠不應該使用迭代器.兩個最重要的例外也是唯一的抽象方法:nexthasNext.

這兩種方法都可以被調用任意次數,而不必丟棄迭代器。請注意,即使 hasNext 也可能導致突變——例如從輸入流迭代時,它將阻塞直到流關閉或某些輸入可用。

考慮以下示例以進行安全和不安全的使用:

def f[A](it: Iterator[A]) = {
 if (it.hasNext) {            // Safe to reuse "it" after "hasNext"
   it.next()                  // Safe to reuse "it" after "next"
   val remainder = it.drop(2) // it is *not* safe to use "it" again after this line!
   remainder.take(2)          // it is *not* safe to use "remainder" after this line!
 } else it
}

伴生:

object

源碼:

Iterator.scala

用法 二

object Iterator extends IterableFactory[Iterator]

伴生:

class

源碼:

Iterator.scala

相關用法


注:本文由純淨天空篩選整理自scala-lang.org大神的英文原創作品 collection.Iterator。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。