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]
  • 相关阅读:
    HTML5 浏览器设定
    c语言运算符优先级
    Jquery选择器
    asp.net中的<% %>用法
    Jquery技巧
    css选择器
    HTML5 Canvas 参考手册
    具有滑动效果的导航代码
    委托
    kubernetes 1.6 集群实践 (十)
  • 原文地址:https://www.cnblogs.com/yifengs/p/10745176.html
Copyright © 2011-2022 走看看