当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。