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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王陶成 中级黑马   /  2012-9-8 16:57  /  1188 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

毕老师在讲ListIterator 的时候提到了并发异常,在Iterator遍历集合元素的时候,集合再去操作元素,会发生并发异常,还用add做了实例。
但我发现在Iterator遍历集合的时候,集合调用remove就不会发生这样的异常,还操作成功了

1 个回复

倒序浏览
import java.util.ArrayList;
import java.util.Iterator;

public class IteratorQuestion {
        public static void main(String[] args) {
                ArrayList a1 = new ArrayList();
               
                a1.add("java01");
                a1.add("java02");
                a1.add("java03");

                for(Iterator it = a1.iterator();it.hasNext();) {
                        //System.out.println(it.next());
                        Object obj = it.next();
                        if(obj.equals("java02")) {
                                //a1.add("java99");//ConcurrentModificationException
                                a1.remove("java03");
                        }
                }
                for(Iterator it = a1.iterator();it.hasNext();){
                        System.out.println(it.next());
                }
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马