用J2SE 5.0创建定制的泛型集合 - 编程入门网
urn list.isEmpty(); }
public int size() { return list.size(); }
public void clear() { list.clear(); }
}
前面的代码声明了队列类,这样它可以接收一个泛型类型。
泛型类型"T"是该类类型-它将被放入到该队列中去。为了把这些项存储到一个队列中,该类还要创建一个接收"T"类型的ArrayList。 push方法很简单的。它接收单一的类型为泛型"T"的对象,并且把它添加到ArrayList上。 pop方法稍微复杂些。首先,如果你要从队列中弹出一个对象,并且如果在队列中没有对象,那么该类将抛出一个QueueException类型的异常。下面是QueueException类。
下面是抛出QueueException类型异常的代码:
如果队列不空,该方法将从队列中检索最后一个元素,在一个名叫result的变量中存储它,然后从该列表中删除这个项。下面几行代码实现了这一功能:
注意,该临时变量也是泛型类型"T"。当这个类与真实的代表泛型类型的Java类型一起使用时,为了实现最大程度上的兼容性,无论你何时存取这些变量,确保总是使用泛型类型是非常重要的。 用J2SE 5.0创建定制的泛型集合(3)时间:2011-03-05三、测试Queue类 下列类用于测试"泛型"队列。
前面的代码中创建的队列仅接收整型对象。
接下来的测试把三个整数添加到该队列上。
注意,添加到该队列中的这些数字都是原始的类型。因为J2SE的自动装箱特性,这些原始的int类型被自动地转变成Integer对象。 接下来,该测试使用pop方法检索对象。在该队列为空的情况下,该测试捕获到QueueException异常。从队列中弹出三个数字的结果是:
尽管在这里作为一接收的整数队列显示,但是因为泛型,所以队列类对于任何Java对象情况都能正常工作。 四、创建一个可预知的Stack集合 这里是一个更复杂的集合类型-它实现了一个堆栈以使你在实际删除一个对象之前能够预知或"可偷看"。你可以或者通过使用一个迭代算子或使用J2SE 5.0的新的"for each"结构语句来进行预知。 这个PeekableStack类是一个先进后出(FILO)栈-让你遍历当前栈中的内容。它的实现使用了两个类。首先,PeekableStack类实现实际的栈部分。其次,PeekableStackIterator类实现一个"Java标准的"Iterator类-你可以用它来遍历整个栈。列表2(见所附源代码文件)显示出PeekableStack类的具体编码。 注意,列表2中的PeekableStack类实现了Iterable接口。这对于支持新型的J2SE 5.0" |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |