Iterator迭代器ConcurrentModificationException异常

Posted teayear

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Iterator迭代器ConcurrentModificationException异常相关的知识,希望对你有一定的参考价值。

参考代码如下:

package day23;

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

public class Demo05It 
    public static void main(String[] args) 
        List list=new ArrayList<>();
        //可以使用ListIterator
        Iterator it=list.iterator(); 
        list.add("aaa");
        list.add("bbb");

        //如果有了迭代器,也想继续加数据,不要针对原来的list;除非你迭代器遍历完毕;
        while (it.hasNext())
            Object obj = it.next();
            System.out.println(obj);
        
        System.out.println(list);
    


```使用迭代器 进行数据获取之后,再对原来的list进行追加,会导致ConcurrentModificationException异常。原因在于迭代器只是List的拷贝(镜像)。可以采用ListIterator it = list.listIterator();
将之前的代码修改为:
ListIterator it = list.listIterator();
it.add("aaa");
it.add("bbb");

以上是关于Iterator迭代器ConcurrentModificationException异常的主要内容,如果未能解决你的问题,请参考以下文章

迭代器(Iterator)

用迭代器iterator遍历list中第一条数据和最后一条数据 并判断

用迭代器iterator遍历list中第一条数据和最后一条数据 并判断

Iterator迭代器

26. 迭代器iterator函数对象

迭代器模式 (Iterator)