我是靠谱客的博主 幸福玉米,最近开发中收集的这篇文章主要介绍Iterator迭代器及增强FOR(for-each),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Iterator迭代器用于获取集合中的元素。一般是用于遍历集合,但是需要配合next()跟hasNext()使用。
next()返回迭代的下一个元素。其实就是获取迭代器的元素,并且移动到下一个元素的位置。(注:虽然java中已经在避免出现指针,但是形似的东西还是有的)hasNext()判断迭代器中是否有元素可以被迭代。
注意:

迭代器是依赖于集合而存在,并且,一般来说,集合中要有元素才有意义。另外在通过迭代器迭代的过程中,往集合中添加元素,这样将导致ConcurrentModificationException(并发修改异常)

解决方案:
A:用集合本身的属性作为条件for遍历集合,再修改集合。这样能添加成功,且元素添加到末尾。
B:用列表迭代器(ListIterator)迭代,用列表迭代器修改元素。遍历到哪里修改在哪里。

ListIterator特有2个方法:previous()和hasPrevious()。

可以逆向遍历,但是注意:必须先正向遍历,然后才能逆向遍历。

原理:指针移动到最后再从最后移动回到开头。

JDK5的新特性:增强for循环(for-each)

格式为:
for(数据类型 变量 : 名称) {

对变量进行操作
}

数据类型和名称就是被遍历的数组或Collection集合的数据类型和名称,括号里直接对变量进行操作就可以实现对整个集合(数组)元素的操作
好处:简化了数组和Collection集合的遍历。但通过反编译以及源码查看,发现原理还是迭代器。


最后

以上就是幸福玉米为你收集整理的Iterator迭代器及增强FOR(for-each)的全部内容,希望文章能够帮你解决Iterator迭代器及增强FOR(for-each)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部