- /*
- List集合特有的迭代器:ListIterator是Iterator的子接口。
- 在迭代时,不可以通过集合对象的方法操作集合中的元素,
- 因为会发生并发异常.ConcurrentModificationException
- 所以在迭代时只能用迭代的方法操作元素,可是Iterator方法是有限
- 只能用于判断,取出删除,操作
- 如果想要其他操作如添加修改,就需要使用其子接口ListIterator
- 该接口只能通过List集合的listIterator方法获取;
- */
- import java.util.*;
- class ListDemo
- {
- public static void main(String[] args)
- {
- method_2();
- }
- public static void method_2()
- {
- //演示列表迭代器
- ArrayList al = new ArrayList();
- al.add("day01");
- al.add("day02");
- al.add("day03");
- al.add("day04");
- sop(al);
- ListIterator li = al.listIterator();
- while(li.hasNext())
- {
- Object obj = li.next();
- if(obj.equals("day03"))
- {
- //li.add("day007");
- li.set("java");
- }
- }
- while(li.hasPrevious())
- {
- sop("pre="+li.previous());
- }
-
- sop(al);
- /*有问题的部分
- //在迭代过程中,准备添加或者删除元素
- Iterator it = al.iterator();
- while(it.hasNext())
- {
- Object obj = it.next();
- if(obj.equals("day02"))
- {
- //al.add("day007");就是说在迭代中不能用列表的
- it.remove();//删除的是day在集合中的引用,obj还在用他。
- }
- sop("obj="+obj);
- }
- sop(al);
- */
-
- }
- public static void sop(Object obj)
- {
- System.out.println(obj);
- }
- }
复制代码
复习的心情好被动啊{:3_65:} |
|