要在遍历ArrayList时从ArrayList中删除一些元素,我们需要使用Iterator。
Integer[] arr = {1,2,3,4,5,6};
ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(arr));
System.out.println(list);
Iterator<Integer> iter = list.iterator();
while(iter.hasNext()){
int i = iter.next();
if(i==5)
iter.remove();
}
System.out.println(list);
如果像下面这样在迭代过程中使用ArrayList.remove(i)方法删除了该元素,则程序将抛出ConcurrentModificationException。
for(int i: list){
if(i==2)
list.remove(list.indexOf(i));
}