Iterator迭代和for增强循环迭代不能改变集合长度,for普通循环可以改变集合长度。
代码示例:
package cn.zxj.com;
import java.util.ArrayList;
import java.util.Iterator;
public class Test {
public static void main(String[] args) {
ArrayList
list.add(1);
list.add(2);
list.add(3);
//for循环
//forMethod(list);
//iterator
iteratorMethod(list);
}
private static void iteratorMethod(ArrayList
System.out.println("before:" + list.size());
Iterator
//迭代器会抛并发异常
while (iterator.hasNext()) {
list.remove(iterator.next());
}
System.out.println("after:" + list.size());
}
private static void forMethod(ArrayList
System.out.println("before:" + list.size());
//普通for循环可以删除元素
for (int i = 0; i < list.size(); i++) {
list.remove(list.get(i));
}
//增强for循环会抛并发异常
System.out.println("after:" + list.size());
}
}



