专栏首页代码人生java迭代器应用 源码探究

java迭代器应用 源码探究

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/luo4105/article/details/54176346

Iterator(迭代器)常被用于遍历,删除Collection序列中的对象。 在jdk源码中,Iterator是一个接口,它定义了三个操作方法

boolean hasNext(); //判断序列中下一个元素是否存在
E next();	   //获得序列中的下一个元素.
void remove();	   //将迭代器新返回的元素删除。

查看源码得知,Collection接口继承Iterable接口,在Iterable接口中定义 Iterator<E> iterator(); 的抽象方法,所有Collection接口实现类(ArrayList、LinkedList)都实现iterator()方法,而通过返回的Iterator对象对collection对象进行操作 Java中的Iterator功能比较简单,并且只能单向移动: Iterator的使用顺序   (1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。   (2) 使用next()获得序列中的下一个元素。   (3) 使用hasNext()检查序列中是否还有元素。   (4) 使用remove()将迭代器新返回的元素删除。 迭代器应用:

ArrayList<Integer> l = new ArrayList<Integer>();
	l.add(1);
	l.add(2);
	l.add(3);
	Iterator<Integer> ite = l.iterator();
	while(ite.hasNext()){
		Integer i = (Integer)ite.next();
		System.out.println(i);
	}

发现一个有意思的一点,在java中foreach的写法for(obj a : objb){} objb的对象类必须实现Iterable(迭代器),并实现实现iterator()方法

参考资料 [1].http://www.cnblogs.com/amboyna/archive/2007/09/25/904804.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 源码追踪 - Gson解析部分属性值为null

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    逝兮诚
  • springMVC系列(二)——两种搭建方式

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    逝兮诚
  • 蓝桥杯 JAVA 入门训练 圆的面积

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    逝兮诚
  • 一款针对DLL劫持的恶意DLL生成器

    EvilDLL是一款专门针对DLL劫持攻击而开发并设计的恶意DLL(反向Shell)生成器。

    FB客服
  • 科普常识:常见音频参数解析

            如果在计算机加上相应的音频卡—就是我们经常说的声卡,我们可以把所有的声音录制下来,声音的声学特性如音的高低等都可以用计算机硬盘文件的方式储存下来...

    朵朵花儿
  • MySQL8.0关系数据库基础教程(三)-select语句详解

    使用 SELECT 子句进行表示。投影是针对表进行的垂直选择,保留需要的字段用于生成新的表

    JavaEdge
  • python及其依赖安装

    Download Miniconda 2.7 64-bit Windows installer from Miniconda website. Install...

    py3study
  • python动态语言特性小结

    1 moduleNames = ['sys', 'os', 're', 'unittest']

    py3study
  • 软件工程 怎样建立甘特图

    甘特图(Gantt chart )又叫横道图、条状图(Bar chart)。它是以图示的方式通过活动列表和时间刻度形象地表示出任何特定项目的活动顺序与持续时间。...

    Debug客栈
  • python3第一天(基础语法)

    对于python3的应用程序,解释器用/usr/bin/python3(python3如果不在此目录下,更换到相应目录).对于运行,可以对写的脚本添加执行权限,...

    py3study

扫码关注云+社区

领取腾讯云代金券