• 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);
        }
  • 相关阅读:
    zabbix监控nginx的性能
    常用iptables命令
    shell脚本小示例
    打印菜单脚本
    ping主机脚本
    Linux网络配置脚本
    多磁盘自动分区自动挂载脚本
    深入js系列-类型(null)
    深入js系列-类型(开篇)
    first-child、last-child误解
  • 原文地址:https://www.cnblogs.com/chichung/p/10246422.html
Copyright © 2020-2023  润新知