博客
关于我
Scala迭代器iterator
阅读量:573 次
发布时间:2019-03-11

本文共 796 字,大约阅读时间需要 2 分钟。

定义:

Scala中的迭代器(Iterator)并不是一个集合,而是一种用于访问集合元素的方式。它提供了两个基本操作:nexthasNext。调用it.next()会获取迭代器下一个元素,并更新迭代器状态;调用it.hasNext()用于判断集合中是否还有未访问的元素。

为了逐个返回所有元素,最简单的方法是使用while循环:

var inter = Iterator(1, 2, 3, 4)
while (inter.hasNext) { println(inter.next()) }

常用操作

max

使用max获取集合中的最大值:var iter = Iterator(1, 2, 3, 4) println(iter.max)

注意:同一个迭代器不能重复使用,调用相同方法或连续调用maxmin会抛出错误。

min

使用min获取集合中的最小值:var iter = Iterator(1, 2, 3, 4) println(iter.min)

find

find方法用于查找符合条件的元素:

def find(p: (A) => Boolean): Option[A]返回符合条件的第一个元素或

。找到后迭代器会跳转到下一个元素,如果没有找到则跳转到末尾。

示例:var iter = Iterator(1, 2, 3, 4) iter.find(_ > 1) while (iter.hasNext) { println(iter.next()) }

另一个示例:var iter = Iterator(1, 2, 3, 4) iter.find(_ > 2) while (iter.hasNext) { println(iter.next()) }

这些方法提供了对集合元素进行高效操作的能力,但请注意同一个迭代器只能使用一次,避免重复使用或混合使用多个方法导致错误。

转载地址:http://olmvz.baihongyu.com/

你可能感兴趣的文章
【echarts】中国地图china.js 在线引用地址
查看>>
Flex 布局的自适应子项内容过长导致其被撑大问题
查看>>
PL/SQL 动态Sql拼接where条件
查看>>
Lua-table 一种更少访问的安全取值方式
查看>>
虚函数
查看>>
菱形继承
查看>>
Error:Cannot read packageName from AndroidManifest.xml
查看>>
RTL设计- 多时钟域按顺序复位释放
查看>>
斐波那契数列两种算法的时间复杂度
查看>>
int main(int argc,char* argv[])详解
查看>>
【Android踩过的坑】7.Android Studio 点击启动项目时进入调试模式
查看>>
【Android小技巧】1.快速查看SDK对应的API Level
查看>>
【自学Flutter】4.1 Material Design字体图标的使用(icon)
查看>>
C++清空队列(queue)方法
查看>>
【换行符】什么时候用cin.get()吃掉输入流中的换行符
查看>>
【二叉树】已知后序与中序求先序
查看>>
数组范围的动态扩容
查看>>
解决Nginx 404 not found问题
查看>>
计算机网络之第三章笔记--数据链路层
查看>>
创建型模式之简单工厂模式实例及代码操作
查看>>