快速业务通道

java api接口篇(二)下 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22
Set headSet(Object toElement); SortedSet tailSet(Object fromElement); // Endpoints Object first(); Object last(); // Comparator access Comparator comparator(); }

Set 操作

从 Set 继承的 SortedSet 操作在 sorted sets 和正常 sets 上的表现完全相同,只有两个例外:

由 iterator 操作返回的 Iterator 按顺序遍历 sorted set。

由 toArray 返回的数组按顺序包括 sorted set 的元素。

尽管该接口不保证这一点,但 JDK 的 SortedSet 实现的 toString 方法返回一个按顺序包含所有 sorted set 元素的串。

标准构造函数

按惯例,所有 Collection 实现都提供一个采用一种 Collection 的标准构造函数。SortedSet 实现也不例外。该构造函数创建了一个SortedSet 对象,它可按自然顺序为它的元素排序。除此之外,按惯例,SortedSet 实现还提供另外两个标准构造函数:

一个构造函数采用 Comparator 并返回一个新的(空的)按特定Comparator 排序的 SortedSet。

另一个构造函数采用 SortedSet 并返回一个新的包含与给定 SortedSet 相同的元素的 SortedSet, 它按照相同的Comparator进行排序 (或是用元素的自然顺序,如果给定的 SortedSet 也这样做过的话)。 请注意,决定该构造函数是否比普通 Set 构造函数可优先调用的是参数的编译时类型,而不是运行时类型!

第一个标准构造函数是用显式Comparator 创建一个空的 SortedSet 的一般方法。第二个标准构造函数在本质上与标准Collection 构造函数相似:它用同样的排序创建一个 SortedSet 的拷贝,但使用的是一个程序员指定的实现类型。

java api接口篇(二)下(5)

时间:2010-12-24

局域视图操作

这里的局域视图操作与 List 接口 提供的局域视图操作有些相似,但有一个大的区别。一个 sorted set 的局域视图将保持有效,即使后备 sorted set 被直接更改也不例外。这是可行的,因为一个 sorted set 的一个局域视图的端点是元素空间中的绝对点,而不是在后备 对象集 中的特定元素(如列表中的情况)。一个 sorted set 的局域视图实际恰恰是一个位于元素空间的指定部位的 set 的某个位置上的视窗。局域视图的变化写回到后备sorted set ,反之亦然。 因此,完全可以在 sorted sets 上长期使用局域视图 (与在列表上的局域视图不同)。

Sorted sets 提供三个局域视图操作。第一个是subSet,subSet 采用两个端点 (就象 subList中的操作一样)。该端点是对象,而不是索引。它们必须与 sorted set 中的元素是可比较的(使用 set 的 Comparator 或它的元素的自然排序,只要是 set 用来为自己排序的那一个)。就象 subList 一样,局域是半开放的(half-open), 它包括它的低端点,但不包括它的高端点。

于是,下面的一行程序将告知你在"doorbell" 和 "pickle"之间有多少个词(包括 "doorbell" 但不包括 "pickle")被包括在称作词典的串的 SortedSet 之中:

int count = dictionary.subSet("doorbell", "pickle").size();

类似的,下面的一行程序将删除所有以"f" 开始的元素(是不是一个很严厉的审查制度?):

dictionary.subSet("f", "g").clear();

你可以使用相似的技巧打印表格,并告知你以每个字母开始的词有多少:

for (char ch="a"; ch$#@60;="z"; ch++) { String from = new String(new char[] {ch}); String to = new String(new char[] {(char)(ch+1)}); System.out.println(from + ": " + dictionary.subSet(from, to).size()); }

假设你要视图一个封闭的区间(closed interval) (两个端点都被包括)而不是一个开放的区间。如果该元素类型允许对一个给定

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号