看如下代码:

//        遍历集合,得到每一个元素,看有没有"world"这个元素,如果有,我就添加一个"javaee"元素,请写代码实现
List<String> list = new ArrayList<String>();
list.add("hello");
list.add("go");
list.add("world");
list.add("java");
Iterator<String> it = list.iterator();
while (it.hasNext()) {
    String s = it.next();
    if(s.equals("world")) {
        list.add("javaee");
    }
}
}

ConcurrentModificationException:当不允许这样的修改时,可以通过检测到对象的并发修改的方法来抛出此异常

会发生报错

Exception in thread "main" java.util.ConcurrentModificationException
    at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901)
    at java.util.ArrayList$Itr.next(ArrayList.java:851)
    at com.Arr.Demo.main(Demo.java:18)

解决方法

1.

List<String> list = new ArrayList<String>();
list.add("hello");
list.add("go");
list.add("world");
list.add("java");
Iterator<String> it = list.iterator();

for (int l = 0; l < list.size(); l++) {
    String s = list.get(l);
    if (s.equals("world")){
        list.add("goo");
    };
}

2.

这里面有一个要注意点
注意画白框的几处代码

List<String> list = new ArrayList<String>();
list.add("hello");
list.add("go");
list.add("world");
list.add("java");
ListIterator<String> it = list.listIterator();

while (it.hasNext()) {
    //            String s = list.get(l);
    String s = it.next();
    if (s.equals("world")){
        it.add("goo");
    };
}
分类: java

站点统计

  • 文章总数:315 篇
  • 分类总数:20 个
  • 标签总数:193 个
  • 运行天数:1157 天
  • 访问总数:41181 人次

浙公网安备33011302000604

辽ICP备20003309号