当前位置:K88软件开发文章中心编程语言JavaJava01 → 文章内容

Scala Iterator(迭代器)

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-11 13:27:18

Scala Iterator(迭代器) Scala 集合Scala Iterator(迭代器)不是一个集合,它是一种用于访问集合的方法。迭代器 it 的两个基本操作是 next 和 hasNext。调用 it.next() 会返回迭代器的下一个元素,并且更新迭代器的状态。调用 it.hasNext() 用于检测集合中是否还有元素。让迭代器 it 逐个返回所有元素最简单的方法是使用 while 循环:object Test { def main(args:





Array[String]) { val it = Iterator("Baidu", "Google", "Runoob", "Taobao") while (it.hasNext){ println(it.next()) } }}执行以上代码,输出结果为:$ scalac Test.scala $ scala TestBaiduGoogleRunoobTaobao查找最大与最小元素你可以使用 it.min 和 it.max 方法从迭代器中查找最大与最小元素,实例如下:





object Test { def main(args:





Array[String]) { val ita = Iterator(20,40,2,50,69, 90) val itb = Iterator(20,40,2,50,69, 90) println("最大元素是:" + ita.max ) println("最小元素是:" + itb.min ) }}执行以上代码,输出结果为:$ scalac Test.scala $ scala Test最大元素是:90最小元素是:2获取迭代器的长度你可以使用 it.size 或 it.length 方法来查看迭代器中的元素个数。实例如下:object Test { def main(args:





Array[String]) { val ita = Iterator(20,40,2,50,69, 90) val itb = Iterator(20,40,2,50,69, 90) println("ita.size 的值:





" + ita.size ) println("itb.length 的值:





" + itb.length ) }}执行以上代码,输出结果为:$ scalac Test.scala $ scala Testita.size 的值:





6itb.length 的值:





6Scala Iterator 常用方法下表列出了 Scala Iterator 常用的方法:序号方法及描述1def hasNext:





Boolean如果还有可返回的元素,返回true。2def next():





A返回迭代器的下一个元素,并且更新迭代器的状态3def ++(that:





=> Iterator[A]):





Iterator[A]合并两个迭代器4def ++[B >:





A](that :





=> GenTraversableOnce[B]):





Iterator[B]合并两个迭代器5def addString(b:





StringBuilder):





StringBuilder添加一个字符串到 StringBuilder b6def addString(b:





StringBuilder, sep:





String):





StringBuilder添加一个字符串到 StringBuilder b,并指定分隔符7def buffered:





BufferedIterator[A]迭代器都转换成 BufferedIterator8def contains(elem:





Any):





Boolean检测迭代器中是否包含指定元素9def copyToArray(xs:





Array[A], start:





Int, len:





Int):





Unit将迭代器中选定的值传给数组10def count(p:





(A) => Boolean):





Int返回迭代器元素中满足条件p的元素总数。11def drop(n:





Int):





Iterator[A]返回丢弃前n个元素新集合12def dropWhile(p:





(A) => Boolean):





Iterator[A]从左向右丢弃元素,直到条件p不成立13def duplicate:





(Iterator[A], Iterator[A])生成两个能分别返回迭代器所有元素的迭代器。14def exists(p:





(A) => Boolean):





Boolean返回一个布尔值,指明迭代器元素中是否存在满足p的元素。15def filter(p:





(A) => Boolean):





Iterator[A]返回一个新迭代器 ,指向迭代器元素中所有满足条件p的元素。16def filterNot(p:





(A) => Boolean):





Iterator[A]返回一个迭代器,指向迭代器元素中不满足条件p的元素。 17def find(p:





(A) => Boolean):





Option[A]返回第一个满足p的元素或None。注意:如果找到满足条件的元素,迭代器会被置于该元素之后;如果没有找到,会被置于终点。18def flatMap[B](f:





(A) => GenTraversableOnce[B]):





Iterator[B]针对迭代器的序列中的每个元素应用函数f,并返回指向结果序列的迭代器。 19def forall(p:





(A) => Boolean):





Boolean返回一个布尔值,指明 it 所指元素是否都满足p。20def foreach(f:





(A) => Unit):





Unit在迭代器返回的每个元素上执行指定的程序 f21def hasDefiniteSize:





Boolean如果迭代器的元素个数有限则返回true(缺省等同于isEmpty) 22def indexOf(elem:





B):





Int返回迭代器的元素中index等于x的第一个元素。注意:迭代器会越过这个元素。23def indexWhere(p:





(A) => Boolean):





Int返回迭代器的元素中下标满足条件p的元素。注意:迭代器会越过这个元素。24def isEmpty:





Boolean检查it是否为空, 为空返回 true,否则返回false(与hasNext相反)。25def isTraversableAgain:





BooleanTests whether this Iterator can be repeatedly traversed.26def length:





Int返回迭代器元素的数量。27def map[B](f:





(A) => B):





Iterator[B]将 it 中的每个元素传入函数 f 后的结果生成新的迭代器。28def max:





A返回迭代器迭代器元素中最大的元素。29def min:





A返回迭代器迭代器元素中最小的元素。30def mkString:





String将迭代器所有元素转换成字符串。31def mkString(sep:





String):





String将迭代器所有元素转换成字符串,并指定分隔符。 32def nonEmpty:





Boolean检查容器中是否包含元素(相当于 hasNext)。33def padTo(len:





Int, elem:





A):





Iterator[A]首先返回迭代器所有元素,追加拷贝 elem 直到长度达到 len。34def patch(from:





Int, patchElems:





Iterator[B], replaced:





Int):





Iterator[B]返回一个新迭代器,其中自第 from 个元素开始的 replaced 个元素被迭代器所指元素替换。35def product:





A返回迭代器所指数值型元素的积。36def sameElements(that:





Iterator[_]):





Boolean判断迭代器和指定的迭代器参数是否依次返回相同元素37def seq:





Iterator[A]返回集合的系列视图38def size:





Int返回迭代器的元素数量39def slice(from:





Int, until:





Int):





Iterator[A]返回一个新的迭代器,指向迭代器所指向的序列中从开始于第 from 个元素、结束于第 until 个元素的片段。40def sum:





A返回迭代器所指数值型元素的和41def take(n:





Int):





Iterator[A]返回前 n 个元素的新迭代器。42def toArray:





Array[A]将迭代器指向的所有元素归入数组并返回。43def toBuffer:





Buffer[B]将迭代器指向的所有元素拷贝至缓冲区 Buffer。44def toIterable:





Iterable[A]Returns an Iterable containing all elements of this traversable or iterator. This will not terminate for infinite iterators.45def toIter

[1] [2]  下一页


Scala Iterator(迭代器)