前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java迭代器应用 源码探究

java迭代器应用 源码探究

作者头像
逝兮诚
发布2019-10-30 12:16:02
3720
发布2019-10-30 12:16:02
举报
文章被收录于专栏:代码人生代码人生

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

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

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

代码语言:javascript
复制
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()将迭代器新返回的元素删除。 迭代器应用:

代码语言:javascript
复制
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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-01-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档