黑马程序员技术交流社区

标题: 并发异常的问题 [打印本页]

作者: 王陶成    时间: 2012-9-8 16:57
标题: 并发异常的问题
毕老师在讲ListIterator 的时候提到了并发异常,在Iterator遍历集合元素的时候,集合再去操作元素,会发生并发异常,还用add做了实例。
但我发现在Iterator遍历集合的时候,集合调用remove就不会发生这样的异常,还操作成功了
作者: 王陶成    时间: 2012-9-8 16:57
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());
                }
        }
}




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