1 import java.util.ArrayList; 2 import java.util.Iterator; 3 import java.util.List; 4 5 public class Test3 { 6 7 public static void main(String[] args) { 8 List list = new ArrayList(); 9 10 list.add("abc1"); 11 list.add("abc2"); 12 list.add("abc3"); 13 list.add("abc4"); 14 15 Iterator it = list.iterator(); 16 while (it.hasNext()){ 17 Object obj = it.next(); //java.util.ConcurrentModificationException 18 19 if (obj.equals("abc2")){ 20 list.add("abc9"); //在迭代器過程中,不要使用集合操作元素,容易出現異常。 21 //可以使用Iterator接口的子接口ListIterator來完成在迭代中對元素進行更多的操作 22 } 23 else 24 System.out.println("next:"+obj); 25 } 26 System.out.println(list); 27 28 } 29 30 }
1 import java.util.ArrayList; 2 import java.util.List; 3 import java.util.ListIterator; 4 5 public class Test3 { 6 7 public static void main(String[] args) { 8 List list = new ArrayList(); 9 10 list.add("abc1"); 11 list.add("abc2"); 12 list.add("abc3"); 13 list.add("abc4"); 14 15 System.out.println("list:"+list); 16 17 ListIterator it = list.listIterator();//獲取列表迭代器的對象 18 //它可以實現在迭代過程中完成對元素的增刪改查 19 //注意:只有list集合具備該迭代功能 20 21 System.out.println("hasNext:"+it.hasPrevious()); //返回列表中當前位置的前面是否有元素的結果。 true or false 22 23 while (it.hasNext()){ 24 Object obj = it.next(); 25 26 if (obj.equals("abc2")){ 27 it.set("abc9"); //用指定元素替換 next 或 previous 返回的最後一個元素(可選操作)。 28 } 29 } 30 31 System.out.println("list:"+list); 32 System.out.println(); 33 34 System.out.println("hasNext:"+it.hasNext()); 35 System.out.println("hasNext:"+it.hasPrevious()); 36 System.out.println(); 37 38 while (it.hasPrevious()) 39 { 40 System.out.println("Previous:"+it.previous()); 41 } 42 System.out.println(); 43 44 System.out.println("list:"+list); 45 } 46 47 }