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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 为梦而战 黑马帝   /  2011-12-19 17:40  /  1758 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 为梦而战 于 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);


                          }
}













评分

参与人数 1技术分 +1 收起 理由
admin + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
窦超 黑马帝 2011-12-19 17:53:59
沙发
受教了。。。。。。学习一下避免出错
回复 使用道具 举报
本帖最后由 为梦而战 于 2011-12-19 19:48 编辑

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


:handshake[互相学习,互相交流,共同进步了!
回复 使用道具 举报
学习了,互相交流学习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马