1.for循环
list.add("A"); list.add("B"); list.add("C"); list.add("D"); for (int i = 0; i < list.size(); i++) { System.out.println(list.size()); if ("A".equals(list.get(i))){ list.add("E"); list.remove("A"); } }
2.增强for
list.add("A"); list.add("B"); list.add("C"); list.add("D"); for (String s : list){ if ("1".equals(s)){ list.add("E"); list.remove("A"); } }
3.Iterator 迭代器
list.add("A"); list.add("B"); list.add("C"); list.add("D"); Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { if ("A".equals(iterator.next())) { iterator.remove(); } }
在第一种和第三种情况下编译和运行都是可以的,第二种则会抛出 java.util.ConcurrentModificationException 的异常。
参考:https://blog.51cto.com/u_15338614/3630877