黑马程序员技术交流社区

标题: 集合操作时特别要注意 [打印本页]

作者: 为梦而战    时间: 2011-12-19 17:40
标题: 集合操作时特别要注意
本帖最后由 为梦而战 于 2011-12-19 19:47 编辑

操作集合的方式有两种:
    一:用集合的方法操作元素
    二:用迭代器的方法操作元素

      当这两种方法操作同一集合中的元素时,所以当迭代器正在操作这一集合中的元素时,如果又用了集合的方法来操作这个集合的时候,就有可能产生安全隐患------并发修改异常(ConcurrentModificationException)。
所以注意:我们不能对同一组元素进行多种同时操作,即不能既用集合方式,又用迭代器方式对同一组元素进行操作。
错误实例:class List1{
              
                       public static void main(String[] args)
                      {
                                             ArrayList t1=new ArrayList();
                                              t1.add("java01");
                                              t1.add("java02");
                                              t1.add("java03");
                                              t1.a dd("java04");
                                              t1.add("java05");
                                              sop(t1);
                                              Iterator it=t1.iterator();
                                              while(it.hasNext())
                                              {
                                                          Object obj=it.next();
                                                          if(obj.equals("java02"))
                                                         t1.add("java06");/*这里在迭代器中又用了集合的方式对同一组元素进行了操作,
                                                       这就有可能产生并发修改异常*/
                                                      
                                                         sop("obj="+obj);
                                               }
                          }
                          public static void sop(Object obj)
                          {
                                           System.out.println(obj);


                          }
}














作者: 窦超    时间: 2011-12-19 17:53
受教了。。。。。。学习一下避免出错
作者: 为梦而战    时间: 2011-12-19 19:43
本帖最后由 为梦而战 于 2011-12-19 19:48 编辑

{:soso_e183:}
窦超 发表于 2011-12-19 17:53
受教了。。。。。。学习一下避免出错


:handshake[互相学习,互相交流,共同进步了!
作者: 王胜利    时间: 2011-12-19 23:23
学习了,互相交流学习




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2