使用迭代器遍历ArrayList并尝试删除数据:
public class CollectionApp { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(0); list.add(1); list.add(2); list.add(3); list.add(4); Iterator<Integer> iterator = list.iterator(); while (iterator.hasNext()){ Integer obj = iterator.next(); if(obj==2){ list.remove(obj); } } System.out.println(list.toString()); } }
删除失败,并抛出如下的异常:
用循环替代迭代器遍历:
public class CollectionApp { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(0); list.add(1); list.add(2); list.add(3); list.add(4); //迭代器用循环替换 for(int i=0;i<list.size();i++){ if(list.get(i)==2){ list.remove(list.get(i)); } } System.out.println(list.toString()); } }
成功的删除数据