博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Iterator是怎样遍历Collection的?
阅读量:6249 次
发布时间:2019-06-22

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

hot3.png

迭代器是遍历Collection的工具,无论什么类型的Collection都可以用iterator来遍历。

我先举个例子:

 

package holdings;import java.util.ArrayList;import java.util.ListIterator;/** * 测试 ListIterator *  * @author kfh * */public class TestListIterator {	public static void main(String[] args) {		ArrayList
l = new ArrayList
(); l.add("a"); l.add("b"); l.add("c"); l.add("d"); l.add("e"); l.add("f"); l.add("g"); l.add("h"); System.out.println(l); ListIterator
listIterator = l.listIterator(); String s1 = listIterator.next(); System.out.println("s1: " + s1); String s2 = listIterator.next(); System.out.println("s2: " + s2); String s1Previous = listIterator.previous(); System.out.println("s1Pre: " + s1Previous); String sPrevious2 = listIterator.previous(); System.out.println("sPre2: " + sPrevious2); }}

大家可以随便拉到一个项目里跑一下试试,结果是这样的:

[a, b, c, d, e, f, g, h]

s1: a
s2: b
s1Pre: b
sPre2: a

至于为什么是这样的?请往下看:

iterator的工作示意图:

153856_eQHK_2561483.png

iterator是这样工作的,首先声明的是iterator的cursor指向的是元素之间的间隔位置(如上图所示 Iterator1和Iterator的位置)

当调用iterator.next()时,官方文档是这样写的:
Returns the next element in the list and advances the cursor position.
意思是,返回当前指针的下一个元素,并且推进指针到下一个位置。

举个例子:

list.iterator()  // cursor处在图中Iterator1的位置
iterator.next() // 返回list的元素1也就是图中的List1, 然后cursor推进一个位置到Iterator2的位置,如此往复进行遍历
现在大家明白了刚刚的例子为什么是a,b,b,a了。

 

转载于:https://my.oschina.net/u/2561483/blog/761771

你可能感兴趣的文章
摄像头 火狐_为什么谷歌浏览器打不开电脑摄像头?
查看>>
两张图片合成一张_ps技巧:大光比照片后期曝光合成技法
查看>>
码条形码属性_条码生成器如何批量生成code 11码
查看>>
和lua的效率对比测试_不同编程语言能耗不同?看这27种语言对比!
查看>>
让某控件失去焦点_常用基本控件测试用例(一)
查看>>
天气模式_今年台风活跃期即将结束!下周天气将开启“大变脸”模式
查看>>
扫码枪关闭常亮模式_生意好时最怕收银出故障,这几个扫码枪的常见问题你一定要知道...
查看>>
如何双击打开vivado工程_利用TCL重建vivado工程
查看>>
mysql的引双向链表_Mysql高手系列 - 第22篇:mysql索引原理详解(高手必备技能)
查看>>
mysql in 查询改成_MySQL not in嵌套查询改写成外连接方式
查看>>
mysql community安装_MySQL Community Server 5.7安装详细步骤
查看>>
python处理多行字符串_python多行字符串
查看>>
java冒泡排序_用java写个冒泡排序?
查看>>
linux 开发java_做开发环境的操作系统是 Linux 好还是 Windows 好?
查看>>
java正文提取_Java网页正文提取工具
查看>>
blocked java_使用jstack排查多线程死锁、阻塞
查看>>
centos7 nohup无法保持_CentOS 不间断会话(ssh关闭后如何保证程序继续运行)(nohup和screen)...
查看>>
显示图片java代码_用于显示下载或是显示图片的一段代码
查看>>
java scrip_js java scrip基本语法
查看>>
java 加上天数_java日期时间加上天数 | 学步园
查看>>