Iterator t = arrayList.iterator();
t.remove();//是对的
ArrayList采用size属性来维护自已的状态,而Iterator采用cursor来来维护自已的状态。
当size出现变化时,cursor并不一定能够得到同步,除非这种变化是Iterator主动导致的。
当Iterator.remove()方法导致ArrayList列表发生变化时,他会更新cursor来同步这一变化。但其他方式导致的ArrayList变化,Iterator是无法感知的。ArrayList自然也不会主动通知Iterator们,那将是一个繁重的工作。
Iterator为了防止状态不一致可能引发的无法设想的后果,Iterator会经常做**checkForComodification()**检查,以防有变。如果有变,则以异常抛出。