zoukankan      html  css  js  c++  java
  • java.util.ConcurrentModification并发修改异常

    在运行下面这段代码时出现了并发修改异常java.util.ConcurrentModification:

    public static void main(String[] args) {
            List l = new ArrayList();
            l.add(100);
            l.add(200);
            l.add(300);
            Iterator it = l.iterator();
            while (it.hasNext()){
                int num = (int)it.next();
                if (num == 200){
                    l.add(400);
                }
            }
            System.out.println(l);
        }

    问题所在:

    遍历的同时集合在增加元素。简单点理解,集合告诉迭代器有多少个元素要迭代,然后迭代器去迭代了,然而集合又新增了元素,就出现了异常。

    解决方法:

    针对上面的代码,可以用ListIterator来解决。让迭代器添加元素,然后可以自动同步到集合啦。(反过来就可以- -)

    public static void main(String[] args) {
            List l = new ArrayList();
            l.add(100);
            l.add(200);
            l.add(300);
            ListIterator it = l.listIterator();
            while (it.hasNext()){
                int num = (int)it.next();
                if (num == 200){
                    it.add(400);
                }
            }
            System.out.println(l);
        }
  • 相关阅读:
    关闭游标
    OCP-1Z0-053-200题-19题-601
    OCP-1Z0-053-200题-17题-99
    OCP-1Z0-053-200题-18题-100
    OCP-1Z0-053-V13.02-99题
    OCP-1Z0-053-200题-16题-98
    OCP-1Z0-053-200题-15题-15
    OCP-1Z0-053-200题-14题-675
    OCP-1Z0-053-200题-13题-97
    OCP-1Z0-053-200题-12题-96
  • 原文地址:https://www.cnblogs.com/chichung/p/10246422.html
Copyright © 2011-2022 走看看