= head; }
27 else { tail.next = new Node(elt); tail =
tail.next; }
28 }
29
30 public Iterator iterator () {
31
32 return new Iterator () {
33 protected Node ptr = head;
34 public boolean hasNext () { return
ptr != null; }
35 public Object next () {
36 if (ptr != null) {
37 Object elt = ptr.elt; ptr
= ptr.next; return elt;
38 } else throw new
NoSuchElementException ();
39 }
40 };
41 }
42 }
接口 Collection 提供了两个方法,即添加元素的方法 add(Object x),见第 2 行,及返回该
Collection 的 Iterator 实例的方法 iterator(),见第 3 行。Iterator 接口也提供了两个方法,
其一就是判断是否有下一个元素的方法 hasNext(),见第 8 行,另外就是返回下一个元素的方法
next(),见第 7 行。LinkedList 类是对接口 Collection 的实现,他是个含有一系列节点的链
表,节点中的数据类型是 Object,这样就能创建任意类型的节点了,比如 Byte, String 等等。上面这段
程式就是用没有泛型的传统的 Java 语言编写的代码。接下来我们分析一下传统的 Java 语言是怎么使用
这个类的。
代码如下:
1 class Test {
2 public static void main (String[] args) {
3 // byte list
4 LinkedList xs = new LinkedList();
5 xs.add(new Byte(0)); xs.add(new Byte(1));
6 Byte x = (Byte)xs.iterator().next();
7 // string list
8 LinkedList ys = new LinkedList();
9 ys.add("zero"); ys.add("one");
10 String y = (String)ys.iterator().next();
11 // string list list