【摘要】:迭代器有时又称游标,是程序设计的软件设计模式,可在集合上遍访的接口,设计人员无须关心集合的内容。迭代器不是一个集合,而是用于逐个访问集合内元素的方法。迭代器提供了两个基本操作:next和hasNext。当在Iterator上调用foreach方法时,方法在遍历完所有元素后会将迭代器保留在最后一个元素的位置,此时再调用hasNext方法将返回false。
迭代器(Iterator)有时又称游标(Cursor),是程序设计的软件设计模式,可在集合(container,例如链表或阵列)上遍访的接口,设计人员无须关心集合的内容。
迭代器不是一个集合,而是用于逐个访问集合内元素的方法。迭代器提供了两个基本操作:next和hasNext。通过调用hasNext方法可以判断集合中是否还有下一个元素,返回true时,可以通过next方法来获取迭代器的下一个元素,如果返回false,即集合中已经没有可迭代的元素时,如果继续调用next方法,则会抛出NoSuchElementException异常。(www.daowen.com)
Iterator提供了类似Traversable、Iterable和Seq集合类中大部分方法的方法。在这些操作中,需要注意的是foreach方法在Traversable和Iterable集合上的操作是有很大差异的。当在Iterator上调用foreach方法时,方法在遍历完所有元素后会将迭代器保留在最后一个元素的位置,此时再调用hasNext方法将返回false。对应的,如果继续调用next方法,就会抛出NoSuchElementException异常了。与此不同的是,在集合中调用foreach方法后,容器中的元素数量不会变化,此时仍然可以继续访问该集合,而不会抛出NoSuchElementEx⁃ception异常,除非传入foreach的函数添加或删除了集合的元素,但通常是不建议这么做的,也就是说,在遍历一个集合的同时,是不应该去增删集合元素的,这种行为的结果是未定义。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
有关Scala语言基础与开发实战的文章