技术开发 频道

用J2SE 5.0创建定制的泛型集合



五、 创建一个可预知的Stack迭代算子

  如果PeekableStack类将要同Java中新的"for each"结构语句一起使用,那么你必须创建一个"Java标准的"Iterator。列表3显示出一个PeekableStackIterator类的实现。

  在列表3中,迭代子实际上并没有以任何方式改变栈的值;代之的是,该迭代子追踪它在元素列表中的当前位置并且总是返回下一个元素。因为这个信息被存储在iteration类本身,所以有可能存在多个算子运行于相同的栈上。

  下列程序用于测试可预知的栈。

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 each"结构语句显示出来。

for( int i: stack)
{
 System.out.println( i );
}

  因此,你看到怎样成功地实现一集合-它支持新型的J2SE惯例-既有泛型也有"for each"结构语句。如你所见,创建与J2SE 5.0中新型的结构相兼容的集合是相当容易的-这只需要利用泛型并且实现恰当的接口即可。你会发现这样的集合类被无缝地集成到J2SE 5.0中。
0
相关文章