下面是一個(gè)ListItr的使用實(shí)例。
1 LinkedList《String》 list = new LinkedList《String》();
2 list.add(“First”);
3 list.add(“Second”);
4 list.add(“Thrid”);
5 System.out.println(list);
6 ListIterator《String》 itr = list.listIterator();
7 while (itr.hasNext()) {
8 System.out.println(itr.next());
9 }
10 try {
11 System.out.println(itr.next());// throw Exception
12 } catch (Exception e) {
13 // TODO: handle exception
14 }
15 itr = list.listIterator();
16 System.out.println(list);
17 System.out.println(itr.next());
18 itr.add(“new node1”);
19 System.out.println(list);
20 itr.add(“new node2”);
21 System.out.println(list);
22 System.out.println(itr.next());
23 itr.set(“modify node”);
24 System.out.println(list);
25 itr.remove();
26 System.out.println(list);
1 結(jié)果:
2 [First, Second, Thrid]
3 First
4 Second
5 Thrid
6 [First, Second, Thrid]
7 First
8 [First, new node1, Second, Thrid]
9 [First, new node1, new node2, Second, Thrid]
10 Second
11 [First, new node1, new node2, modify node, Thrid]
12 [First, new node1, new node2, Thrid]
LinkedList還有一個(gè)提供Iterator的方法:descendingIterator()。該方法返回一個(gè)DescendingIterator對(duì)象。DescendingIterator是LinkedList的一個(gè)內(nèi)部類(lèi)。
1 public Iterator《E》 descendingIterator() {
2 return new DescendingIterator();
3 }
下面分析詳細(xì)分析DescendingIterator類(lèi)。
1 private class DescendingIterator implements Iterator {
2 // 獲取ListItr對(duì)象
3 final ListItr itr = new ListItr(size());
4 // hasNext其實(shí)是調(diào)用了itr的hasPrevious方法
5 public boolean hasNext() {
6 return itr.hasPrevious();
7 }
8 // next()其實(shí)是調(diào)用了itr的previous方法
9 public E next() {
10 return itr.previous();
11 }
12 public void remove() {
13 itr.remove();
14 }
15 }
從類(lèi)名和上面的代碼可以看出這是一個(gè)反向的Iterator,代碼很簡(jiǎn)單,都是調(diào)用的ListItr類(lèi)中的方法。
評(píng)論
查看更多