阿里规范学习总结-不要再foreach对元素进行add()/remove()操作,
在foreach循环中,对元素进行 remove()/add() 操作需要使用Iterator ,如果运行在多线程环境下,需要对Iterator对象枷锁。
public class ForeachTest { public static void main(String[] args){ List<String> a = new ArrayList<String>(); a.add("1"); a.add("2"); for (String temp : a) { if("2".equals(temp)){ a.remove(temp); } } System.out.println(a); } }
此方法执行报错信息如下:
Exception in thread "main" java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:859) at java.util.ArrayList$Itr.next(ArrayList.java:831) at sysman_service_intf.ForeachTest.main(ForeachTest.java:28)
从错误信息能够看出异常出现在checkForComodification()方法中。
下面我们分析异常出现的原因:
posted on 2017-12-08 21:49 pineapple丿夜曲 阅读(282) 评论(0) 编辑 收藏 举报