/** * 不要在foreach循环里进行元素的remove/add操作。 * remove元素请使用Iterator方式,如果并发操作,需要对Iterator对象加锁。 * @author lixiangke * @date 2017/11/29 */public class TestForIn { public static void main(String[] args) { // 从集合中移除元素, 错误示例 Listlist = new ArrayList (); list.add("1"); list.add("2"); for (String item : list) { if ("2".equals(item)) { list.remove(item); } } // 上面的循环编译后等价于下面 /* for (Iterator it = list.iterator(); it.hasNext();) { String ele = it.next(); if ("2".equals(ele)) { list.remove(ele); } } */ // // 从集合中移除元素, 正确示例 Iterator iterator = list.iterator(); while (iterator.hasNext()) { String item = iterator.next(); if ("2".equals(item)) { iterator.remove(); } } }}