"在 Java 中, 如果在 foreach 循环里对某些集合元素进行元素的 remove/add 操作的时候,就会触发 fail-fast 机制,进而抛出 CMException。 如以下代码: console.log(List<String> userNames = new ArrayList<String>() {{ add(""Hollis""); add(""hollis""); add(""HollisChuang""); add(""H""); }}; for (String userName : userNames) { if (userName.equals(""Hollis"")) { userNames.remove(userName); } } System.out.println(userNames);)
以上代码,使用增强 for 循环遍历元素,并尝试删除其中的 Hollis 字符串元素。运行以上代码,会抛出以下异常: Exception in thread ""main"" java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:909) at java.util.ArrayList$Itr.next(ArrayList.java:859) at com.hollis.ForEach.main(ForEach.java:22) 同样的,可以尝试下在增强 for 循环中使用 add 方法添加元素,结果也会同样抛出该异常。
资料来源:《Java工程师成神之路(基础篇)》,链接:https://developer.aliyun.com/topic/download?id=923"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。