【强制】不要在 foreach 循环里进行元素的 remove/add 操作。
remove 元素请使用 Iterator 方式,如果并发操作,需要对 Iterator 对象加锁。
反例: List a = new ArrayList();
a.add("1");
a.add("2");
for (String temp : a) { if("2".equals(temp)){ a.remove(temp); } }
说明:以上代码的执行结果肯定会出乎大家的意料,那么试一下把“2”换成“1”,会是同样的 结果吗?
正例:
Iterator it = a.iterator(); while(it.hasNext()){ String temp = it.next(); if(删除元素的条件){ it.remove(); } }