用J2SE 5.0创建定制的泛型集合
五、 创建一个可预知的Stack迭代算子
如果PeekableStack类将要同Java中新的"for each"结构语句一起使用,那么你必须创建一个"Java标准的"Iterator。列表3显示出一个PeekableStackIterator类的实现。
在列表3中,迭代子实际上并没有以任何方式改变栈的值;代之的是,该迭代子追踪它在元素列表中的当前位置并且总是返回下一个元素。因为这个信息被存储在iteration类本身,所以有可能存在多个算子运行于相同的栈上。
下列程序用于测试可预知的栈。
如你所见,有三个项被添加到栈上去。然后,这三个项被使用新的"for each"结构语句显示出来。package com.heatonresearch.examples.collections; import java.util.*; public class TestPeekableStack { public static void main(String args[]) { PeekableStack<Integer> stack = new PeekableStack<Integer>(); stack.push(1); stack.push(2); stack.push(3); for (int i : stack) { System.out.println(i); } System.out.println("Pop 1:" + stack.pop()); System.out.println("Pop 2:" + stack.pop()); System.out.println("Pop 3:" + stack.pop()); } }
| for( int i: stack) { System.out.println( i ); } |
因此,你看到怎样成功地实现一集合-它支持新型的J2SE惯例-既有泛型也有"for each"结构语句。如你所见,创建与J2SE 5.0中新型的结构相兼容的集合是相当容易的-这只需要利用泛型并且实现恰当的接口即可。你会发现这样的集合类被无缝地集成到J2SE 5.0中。
0
相关文章