用法 一
trait Iterator[+A] extends IterableOnce[A] with IterableOnceOps[A, Iterator, Iterator[A]]
迭代器是允许迭代一系列元素的数据结构。他们有一个 hasNext
方法来检查是否有下一个元素可用,以及一个 next
方法返回下一个元素并推进迭代器。
迭代器是可变的:对它的大多数操作都会改变它的状态。虽然它通常用于遍历集合的元素,但它也可以在没有任何集合支持的情况下使用(参见伴随对象的构造函数)。
特别重要的是要注意,除非另有说明,调用方法后永远不应该使用迭代器.两个最重要的例外也是唯一的抽象方法:next
和hasNext
.
这两种方法都可以被调用任意次数,而不必丢弃迭代器。请注意,即使 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
@SerialVersionUID (3L)
用法 二
object Iterator extends IterableFactory[Iterator]
伴生:
- class
源码:
- Iterator.scala
相关用法
- Scala collection.IterableOnce用法及代码示例
- Scala collection.JavaConverters用法及代码示例
- Scala control.Breaks用法及代码示例
- Scala compiletime.summonFrom用法及代码示例
- Scala control.Exception用法及代码示例
- Scala compiletime.error用法及代码示例
- Scala compiletime.erasedValue用法及代码示例
- Scala compiletime.codeOf用法及代码示例
- Scala compiletime.uninitialized用法及代码示例
- Scala control.NonFatal用法及代码示例
- Scala convert.ImplicitConversions用法及代码示例
- Scala concurrent.Future用法及代码示例
- Scala control.ControlThrowable用法及代码示例
- Scala concurrent.BlockContext用法及代码示例
- Scala control.TailCalls用法及代码示例
- Scala compiletime.requireConst用法及代码示例
- Scala Tabulate.sliding用法及代码示例
- Scala ArrayBuffer.inits用法及代码示例
- Scala long.BitwiseOr用法及代码示例
- Scala StringBuilder.partitionMap用法及代码示例
- Scala List distinct()用法及代码示例
- Scala DefaultMap.sizeIs用法及代码示例
- Scala StrictOptimizedIterableOps.sliding用法及代码示例
- Scala Searching.SearchResult用法及代码示例
- Scala ::.collectFirst用法及代码示例
注:本文由纯净天空筛选整理自scala-lang.org大神的英文原创作品 collection.Iterator。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。