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 }
