zoukankan      html  css  js  c++  java
  • ConcurrentModificationException并发修改异常

    //创建集合对象
    Collection c = new ArrayList();
    c.add("hello");
    c.add("world");
    c.add("java");
    
    Iterator it = c.iterator();
    while(it.hasNext()){
        String s =  (String)it.next();
        if(s.equals("java")){
            c.add("android");//报错 并发异常
        }
    }

    迭代器是依赖于集合的,相当于集合的一个副本,当迭代器在操作的时候,如果发现和集合不一样,就会抛出异常

    解决方案:

         在使用迭代器进行遍历的时候使用迭代器来修改,不使用集合修改

    //使用List创建集合对象
        List c = new ArrayList();
        c.add("hello");
        c.add("world");
        c.add("java"):
    
        ListIterator lit = c.listIterator();
        while(lit.hasNext()){
            String s = (String)lit.next();
            if(s.equals("java")){
                lit.add("android");//注,此处不要用集合c添加,要用迭代对象lit添加,它就会去同步集合
            }
        }
    
        System.out.println(c);//[hello,world,java,android]
  • 相关阅读:
    [BZOJ2969] 矩形粉刷
    数字 (number)
    字符串(String)
    小HY的四元组
    最大公约数(Max Gcd)
    [洛谷P2102] 地砖铺设
    Python OS模块(内置模块)
    json解析神器--jsonpath
    kafka 优势+应用场景
    Python之异常处理
  • 原文地址:https://www.cnblogs.com/yifengs/p/10745176.html
Copyright © 2011-2022 走看看