package cn.lonecloud.Iterator; import java.util.ArrayList; import java.util.ListIterator; public class myListIterator { public static void main(String[] args) { ArrayList<Integer> list=new ArrayList<Integer>(); for (int i = 0; i < 10; i++) { list.add(i); } //列表迭代器繼承的介面是Iterator ListIterator<Integer> iterator=list.listIterator(); ListIterator<Integer> iterator2=list.listIterator(); /** * Exception in thread "main" java.lang.IllegalStateException at java.util.ArrayList$ListItr.set(ArrayList.java:941) at cn.lonecloud.Iterator.myListIterator.main(myListIterator.java:14) 同樣會報錯,這個類裡面的set和remove方法都需要和next()方法相結合使用 而且他的會改變的元素就是next()裡面返回的元素 */ iterator.next(); iterator.set(22);// iterator.next(); iterator.remove(); /** * Exception in thread "main" java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901) at java.util.ArrayList$Itr.next(ArrayList.java:851) at cn.lonecloud.Iterator.myListIterator.main(myListIterator.java:28) 由於改變了list裡面的元素,導致這個迭代器混亂了,導致丟擲異常 */ while (iterator2.hasNext()) { Integer integer = (Integer) iterator2.next(); System.out.println(integer); } } }
ListIterator是繼承於Iterator的一個介面;
裡面有set方法;