1 package cn.itcast.p4.list.demo;
2
3 import java.util.ArrayList;
4 import java.util.Iterator;
5 import java.util.List;
6 import java.util.ListIterator;
7
8 import com.sun.tools.sjavac.comp.dependencies.PublicApiCollector;
9
10 public class ListDemo2 {
11 public static void main(String[] args) {
12 List list = new ArrayList();
13 // show(list);
14
15 list.add("abc1");
16 list.add("abc2");
17 list.add("abc3");
18
19 ListIterator it = list.listIterator();//获取列表迭代器对象
20 //它可以实现在迭代过程中完成对元素的增删改查。
21 //注意:只有list集合具备该迭代功能
22
23 while (it.hasNext()) {
24 Object obj = it.next();
25 if (obj.equals("abc2")) {
26 it.add("abc9");
27 }
28 }
29 // System.out.println("next:"+it.hasNext());
30 // System.out.println("hasPrevious:"+it.hasPrevious());
31
32 while (it.hasPrevious()) {
33 System.out.println("previous:"+it.previous());//逆序遍历
34 }
35 System.out.println("list:"+list);
36
37 /*
38 * Iterator it = list.iterator();//此时迭代器知道有三个元素 while (it.hasNext()) { Object
39 * obj = it.next();//java.util.ConcurrentModificationException
40 * //在迭代过程中,不要使用集合操作元素,容易操作异常,(并发修改)
41 * //可以使用Iterator接口的子接口ListIterator来完成迭代中对元素进行更多的操作 if (obj.equals("abc2")) {
42 * list.add("abc9");// }else { System.out.println("next:"+obj); }
43 *
44 * } System.out.println(list);
45 */
46
47
48
49
50
51 }
52
53 private static void show(List list) {
54 // TODO Auto-generated method stub
55 list.add("abc1");
56 list.add("abc2");
57 list.add("abc3");
58 list.add("abc4");
59
60 Iterator it = list.iterator();
61 while (it.hasNext()) {
62 System.out.println("next:"+it.next());
63 }
64 //list特有的取出元素方式之一,set不具备,set只有iterator
65 for (int i = 0; i < list.size(); i++) {
66 System.out.println("get:"+list.get(i));
67 }
68
69
70 }
71 }