package cn.lonecloud.Iterator; import java.util.ArrayList; import java.util.Iterator; public class myIterator { public static void main(String[] args) { ArrayList<Integer> list=new ArrayList<Integer>(); for (int i = 0; i < 10; i++) { list.add(i); } /** * Exception in thread "main" java.lang.IllegalStateException at java.util.ArrayList$Itr.remove(ArrayList.java:864) at cn.lonecloud.Iterator.myIterator.main(myIterator.java:17) */ Iterator<Integer> iterator=list.iterator(); while (iterator.hasNext()) { Integer integer = (Integer) iterator.next(); System.out.println(integer); iterator.remove(); iterator.remove();//這裡會出現錯誤由於next和remove方法的呼叫是具有相互依賴性的; //如果沒有呼叫next將是不合法的,會導致IllegalStateException異常 } } }
在iterator 中他的remove的元素是他在next中最後一個next的元素!