天天看点

集合--迭代器的并发修改异常

问题描述:

  在迭代器遍历集合中的元素时,再往集合中添加了一个元素(或者期间使用了集合的任一方法),发生的异常--->并发修改异常;

代码测试:

package com.yikuan.test;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Test3 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();
        list.add("asd1");
        list.add("asd2");
        list.add("asd3");
        list.add("asd4");
        
        Iterator<String> it = list.iterator();
        while(it.hasNext()){
            String next = it.next();
            if(next.equals("asd3")){
                list.add("####");
            }
            System.out.println(next);
        }
    }
}      

结果:

asd1
asd2
asd3
Exception in thread "main" java.util.ConcurrentModificationException
    at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901)
    at java.util.ArrayList$Itr.next(ArrayList.java:851)
    at com.yikuan.test.Test3.main(Test3.java:17)      

转载于:https://www.cnblogs.com/yikuan-919/p/9539759.html