java迭代器应用 源码探究
来源:互联网 发布:unity3d 动态加载fbx 编辑:程序博客网 时间:2024/06/11 17:40
Iterator(迭代器)常被用于遍历,删除Collection序列中的对象。
在jdk源码中,Iterator是一个接口,它定义了三个操作方法
Java中的Iterator功能比较简单,并且只能单向移动:
Iterator的使用顺序
(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。
(2) 使用next()获得序列中的下一个元素。
(3) 使用hasNext()检查序列中是否还有元素。
(4) 使用remove()将迭代器新返回的元素删除。
迭代器应用:
在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 0
- java迭代器应用 源码探究
- ssh应用层协议原理 jsch源码探究 authfail
- SGISTL源码探究-迭代器的类型
- Java常用类源码探究(一):Object类
- JAVA线程池源码探究与简单小例子
- Java线程池总结之从使用探究源码实现
- java源码Integer类toBinaryString()方法探究
- JAVA中的Class.forName作用及JDBC应用探究
- JAVA中的Class.forName作用及JDBC应用探究
- ibatis源码探究
- .Net源码探究开篇
- Classloader源码探究
- Volley源码探究
- ArrayLIst源码探究
- HashMap源码探究
- LinkedHashMap源码探究
- 属性动画源码探究
- Rxjava 初始源码探究
- jsonp解决跨域问题详解
- 因子分析法
- java 过滤器(filter)
- 关于表格的Disclosure indicator无法跳转的问题
- 因子分析原理PPT
- java迭代器应用 源码探究
- C++中不能声明为虚函数的有哪些函数
- 关于 CheckBox 你或许不知道的一些知识点
- 【android学习】android与H5互相调用
- 以太坊学习(4)开发编译部署调用智能合约
- k近邻法与kd树
- Codeforces 353C Find Maximum【贪心】
- 系数求和问题(模拟)
- JavaWeb 过滤器的使用