集合框架--ListIterator接口
来源:互联网 发布:北邮网络教育登录系统 编辑:程序博客网 时间:2024/06/05 22:54
通过一段代码来学习List集合:
import java.util.ArrayList;import java.util.List;import java.util.Iterator;public class ListDemo{public static void main(String[] args){List list=new ArrayList();//创建一个List集合对象,用其子类实例化//在List集合中添加对象list.add("abc1");list.add("abc2");list.add("abc3");//迭代器取出List集合中的对象(注:在List中有一个独有的get方法也可以取出对象)Iterator it=list.iterator();while(it.hasNext()){Object obj=it.next();if(obj.equals("abc2")){list.add("abc9"); //使用集合操作数据}elseSystem.out.println("next:"+obj);}System.out.println(list);}}运行结果:
抛出了ConcurrentModificationException(检测到对象的并发修改,但不允许这种修改时,抛出异常)。抛出异常的原因是迭代器在操作元素的过程中集合也在操作元素,他们同时修改元素导致迭代出了问题。所以在迭代过程中不要使用集合操作元素,容易出现异常。
Iterator接口下有一个子接口ListIterator(列表迭代器),这个子接口提供增删改查等多种方法。为了获取这个子接口,我们可以使用List接口中的listIterator()方法来获取列表迭代器(这个迭代器只有list集合有)。所以可以使用Iterator接口的子接口ListIterator来完成在迭代中对元素进行更多的操作。
修改代码:
import java.util.ArrayList;import java.util.List;import java.util.ListIterator;public class ListDemo{public static void main(String[] args){List list=new ArrayList();//创建一个List集合对象,用其子类实例化//在List集合中添加对象list.add("abc1");list.add("abc2");list.add("abc3");System.out.println("list:"+list);//获取列表迭代器对象ListIterator it=list.listIterator();while(it.hasNext()){Object obj=it.next();if(obj.equals("abc2")){it.add("abc9"); //不再使用集合,使用迭代器来操作数据}}System.out.println("list:"+list);}}运行结果:
0 0
- 集合框架--ListIterator接口
- Java 集合框架listIterator接口
- 黑马程序员---集合框架【List接口和ListIterator接口】、
- 集合框架(ListIterator)
- 16-集合框架-09-常用对象API(集合框架-ListIterator接口)
- 08.集合框架(一)【集合概述】【接口Collection,Iterator,List,ListIterator】【类LinkedList,ArrayList】
- 黑马程序员_集合框架listIterator
- 黑马程序员_集合框架listIterator
- JAVA基础再回首(十四)——集合框架、Collection接口、迭代器Iterator、List接口、ListIterator列表迭代器
- ListIterator接口
- ListIterator接口
- ListIterator接口
- ListIterator接口
- 09-常用对象API(集合框架-ListIterator接口) 1 2 3 4 5 10-常用对象API(集合框架-List常用子类的特点)
- java 集合框架之LinkedList及ListIterator实现源码分析
- 集合-ListIterator类
- java 集合 ListIterator
- 集合迭代器 listIterator()
- hdoj-1020-Encoding
- java中的抽象类
- bzoj 1180: [CROATIAN2009]OTOCI
- 网络时延的几个概念
- malloc原理和内存碎片
- 集合框架--ListIterator接口
- 338. Counting Bits
- 一些不错的WEB前端书籍
- .NET AOP (六)在编译阶段PostSharp
- ”伪集群“导致的Hibernate主键increment生成策略异常
- 编辑文章 - 博客频道 - CSDN.NET
- c++中使用fstream读写文件
- 5-19 PAT Judge (25分)
- extract things from text files