foreach遍历list删除元素一定会报错?

  • Post author:
  • Post category:其他




foreach遍历list集合删除某些元素一定会报错吗,来,先上一段代码:


1)报错啦

 List list = new ArrayList();
        list.add("1");
        list.add("2");
        list.add("3");
        list.add("4");
        list.add("5");
        for (String item : list) {
            if (item.equals("3")) {
                System.out.println(item);
                list.remove(item);
            }
        }
        System.out.println(list.size());





理所应当,控制台就愉快的报出了java.util.ConcurrentModificationException。



这是怎么回事,然后去看了看这个异常,才发现自己果然还是太年轻啊。



我们都知道增加for循环即foreach循环其实就是根据list对象创建一个iterator迭代对象,用这个迭代对象来遍历list,相当于list对象中元素的遍历托管给了iterator,如果要对



版权声明:本文为bimuyulaila原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。