本帖最后由 崔维友 于 2012-11-22 12:21 编辑
Iterator只能对集合元素判断、读取、删除操作。使用ListIteraotr可以进行增、删、改、查的操作。但在多个不同的操作中,因为顺序不同而抛出异常IllegalStateException。
API中的说明是“在非法或不适当的时间调用方法时产生的信号。换句话说,即 Java 环境或 Java 应用程序没有处于请求操作所要求的适当状态下。”对这句话不慎理解。
代码:- import java.util.*;
- class ListDemo2
- {
- public static void getColl(Object obj)
- {
- System.out.println(obj);
- }
- public static void main(String[] args)
- {
- //List的子类ArrayList
- ArrayList alt=new ArrayList();
- alt.add("ArrayList1");
- alt.add("ArrayList2");
- alt.add("ArrayList3");
- alt.add("ArrayList4");
- getColl("原 集 合:"+alt);
- /*
- //迭代修改,仅用于List对象。不能使用集合和迭代器同时操作容器
- for (ListIterator lt=alt.listIterator(); lt.hasNext(); )
- {
- Object obj=lt.next();
- if (obj.equals("ArrayList3"))
- {
- lt.add("Hello");
- lt.add("World");
- lt.set("Vigiles"); //放在第三句执行为何抛出异常
- }
- }
- getColl("迭代器for添加:"+alt);
- */
- //迭代修改,仅用于List对象。不能使用集合和迭代器同时操作容器
- for (ListIterator lt=alt.listIterator(); lt.hasNext(); )
- {
- Object obj=lt.next();
- if (obj.equals("ArrayList3"))
- {
- lt.set("Vigiles");
- lt.add("Hello");
- lt.add("World");
- }
- }
- getColl("迭代器for添加:"+alt);
- }
- }
复制代码
-------------------------------------------------------------
请各位不吝赐教!
|