A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 18353666072 中级黑马   /  2014-6-18 10:30  /  966 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /*
  2. List集合特有的迭代器:ListIterator是Iterator的子接口。
  3. 在迭代时,不可以通过集合对象的方法操作集合中的元素,
  4. 因为会发生并发异常.ConcurrentModificationException
  5. 所以在迭代时只能用迭代的方法操作元素,可是Iterator方法是有限
  6. 只能用于判断,取出删除,操作
  7. 如果想要其他操作如添加修改,就需要使用其子接口ListIterator
  8. 该接口只能通过List集合的listIterator方法获取;
  9. */
  10. import java.util.*;
  11. class ListDemo
  12. {
  13.         public static void main(String[] args)
  14.         {
  15.                  method_2();
  16.         }
  17.         public static void method_2()
  18.         {
  19.                 //演示列表迭代器
  20.                 ArrayList al = new ArrayList();
  21.                 al.add("day01");
  22.                 al.add("day02");
  23.                 al.add("day03");
  24.                 al.add("day04");
  25.                 sop(al);
  26.                 ListIterator li = al.listIterator();
  27.                 while(li.hasNext())
  28.                 {
  29.                         Object obj = li.next();
  30.                         if(obj.equals("day03"))
  31.                         {
  32.                                 //li.add("day007");
  33.                                 li.set("java");
  34.                         }       
  35.                 }
  36.                 while(li.hasPrevious())
  37.                 {
  38.                         sop("pre="+li.previous());
  39.                 }
  40.                
  41.                 sop(al);
  42.                 /*有问题的部分
  43.                 //在迭代过程中,准备添加或者删除元素
  44.                 Iterator it = al.iterator();
  45.                 while(it.hasNext())
  46.                 {
  47.                         Object obj = it.next();
  48.                         if(obj.equals("day02"))
  49.                         {
  50.                                 //al.add("day007");就是说在迭代中不能用列表的
  51.                                 it.remove();//删除的是day在集合中的引用,obj还在用他。
  52.                         }
  53.                         sop("obj="+obj);
  54.                 }
  55.                 sop(al);
  56.                 */
  57.                
  58.         }
  59.         public static void sop(Object obj)
  60.         {
  61.                 System.out.println(obj);
  62.         }
  63. }
复制代码

复习的心情好被动啊{:3_65:}

1 个回复

倒序浏览
有种原来是这样的感觉?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马