并发修改异常java.util.ConcurrentModificationException

java.util.ConcurrentModificationException并发修改异常

并发修改异常

在集合操作中如果使用迭代器去遍历集合中的元素经常会遇到并发修改异常java.util.ConcurrentModificationException

引发这个问题的主要原因是,迭代器在遍历查询集合元素时,元素又动态添加了

错误代码

需求是如果集合中含有c的元素那么就添加e的元素

List<String> list = new ArrayList<String>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            if (iterator.next().equals("c")) {
                list.add("e");
            }
        }
        System.out.println(list);

一运行就会报java.util.ConcurrentModificationException的异常

修改后代码

思路,如果有添加的元素那么就使用迭代器的添加方法,不能使用集合直接添加

List<String> list = new ArrayList<String>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        ListIterator<String> iterator = list.listIterator();
        while (iterator.hasNext()) {
            if (iterator.next().equals("c")) {
                iterator.add("e");
            }
        }
        System.out.println(list);

日常笔记,继续保持!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章