Java迭代器注意事项
2016-06-19 18:02
447 查看
java迭代器是用来遍历集合的
Iterator迭代器:
1.它是一个接口,是不能实例化的。
只能接收集合类对象调用自己的iterator方法来生成的Iterator对象
2.迭代器Iterator有3个方法
boolean hasNext()如果仍有元素可以迭代(用来判断当前指针指向的下一位置是否还有元素),有返回true
E next() 返回迭代的下一个元素(指针指向下一位置,并返回指向的元素)
void remove()删除当前迭代的元素
3. 用来遍历集合时,需要hasNext()方法和next()方法配合使用
4.在遍历的过程中,不允许对集合进行增删操作。如果想要对集合进行删除操作,也必须调用迭代器的remove()方法
代码演示:
结果
ListIterator迭代器:
ListIterator允许对于容器中的元素进行双向遍历,而Iterator是单向的。
它的方法有
Iterator迭代器:
1.它是一个接口,是不能实例化的。
只能接收集合类对象调用自己的iterator方法来生成的Iterator对象
2.迭代器Iterator有3个方法
boolean hasNext()如果仍有元素可以迭代(用来判断当前指针指向的下一位置是否还有元素),有返回true
E next() 返回迭代的下一个元素(指针指向下一位置,并返回指向的元素)
void remove()删除当前迭代的元素
3. 用来遍历集合时,需要hasNext()方法和next()方法配合使用
4.在遍历的过程中,不允许对集合进行增删操作。如果想要对集合进行删除操作,也必须调用迭代器的remove()方法
代码演示:
import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class iterator { public static void main(String[] args) { // TODO Auto-generated method stub List list=new ArrayList();//创建一个线性表 这里运用多态 list.add("one"); list.add("#"); list.add("two"); list.add("#"); list.add("three"); list.add("#"); Iterator it=list.iterator();//返回线性表的迭代器 while(it.hasNext()) //遍历线性表 ,先检查是否还有元素可以迭代 { String element=(String) it.next();//取出迭代的元素 if("#".equals(element))//如果元素=="#",则删除 { it.remove();//true //<span style="color:#ff0000;">list.remove(element);//Error</span> } System.out.println(element); } System.out.println(list); } }
结果
one # two # three # [one, two, three]
ListIterator迭代器:
ListIterator允许对于容器中的元素进行双向遍历,而Iterator是单向的。
它的方法有
hasPrevious() hasNext() previous() next() nextPrevious() nextIndex() remove() add() set()
相关文章推荐
- 抛开spark-submit脚本提交spark程序
- 《Java程序设计》课程总结
- Struts2对Ognl的支持
- Java线程的生命周期
- eclipse 提交项目至 github
- Maven插件:maven-javadoc-plugin
- Spring处理id相同的bean
- JAVA学习总结十八
- 20145221 《Java程序设计》课程总结
- 搭建自己的Spring Initializr服务器
- eclipse在ubuntu下无法设置以及新建工程卡死解决方案
- 20145204《java程序设计》课程总结
- Java中ListIterator和Iterator详解与辨析
- java伪随机数
- Java内部类的作用
- Spring-----Spring Jar包
- JavaSE学习53:细说多线程之内存可见性
- java对象与json对象间的相互转换
- JAVA图书馆库存管理系统程序代码(管理系统+用户购买结账系统)
- 01.Java 集合 - 概述