快速失败行为指当使用迭代器遍历Vector中的成员时,迭代器相当于另起了一个线程,此时,如果使用非迭代器的修改方法对 Vector进行修改,则在应用程序运行的时候会出现如下异常:
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$Itr.next(AbstractList.java:343)
at Test.setVector(Test.java:20)
at Test.main(Test.java:26)
如,在如下代码中如果我在迭代器之后添加 v.remove(0);这行代码,则会出现如上异常,如果我在生成迭代器之前添加这行代码或者删除这行代码,应用程序则运行正常
public static void setVector()
{
Vector v=new Vector();
v.add("100");
v.add(new Integer(2));
v.add("300");
Iterator i=v.iterator();
v.remove(0);
while(i.hasNext())
{
System.out.println(i.next().toString());
}
}