java api接口篇(二)下 - 编程入门网
值进行后继符(successor) 计算(在该元素空间), 那么, subSet 只要从 lowEndpoint 至 successor(highEndpoint) 发出请求。尽管这不是显而易见的,但是,在 String 的自然排序中的一个串 s 的后继符是 s+"\0" (即,s 加上一个空字符)。
于是,下面的一行程序将告知你在"doorbell" 和 "pickle"之间(包括 "doorbell" 和 "pickle")有多少词被包括在词典里: dd$#@60;$#@62; int count = dictionary.subSet("doorbell", "pickle\0").size(); 类似的技术也可被用来视图一个开放的区间(open interval) (两个端点都不被包括)。从lowEndpoint 至 highEndpoint 的开放区间视图是从 successor(lowEndpoint) 至 highEndpoint 的半开放区间。下列程序计算在"doorbell" 和 "pickle"之间的词汇数(不包括上述两个词): int count = dictionary.subSet("doorbell\0", "pickle").size(); SortedSet 接口还包括另外两个局域视图操作, headSet 和 tailSet, 这两个操作均采用一个单一的 Object 参数。前者返回对后备 SortedSet 的初始部分的一个视图,一直到该特定对象,但不包括该特定对象;后者返回这个后备SortedSet 的最后部分的一个视图,它从这个特定对象开始,直到该后备 SortedSet 的结束。于是,下列代码允许你把该词典作为分开的两"卷"来视图(a-m 和 n-z): SortedSet volume1 = dictionary.headSet("n"); SortedSet volume2 = dictionary.tailSet("n"); 端点操作 SortedSet 接口返回 sorted set 中的第一个和最后一个元素的操作,称作 (不必惊讶) first 和 last。除了它们显而易见的用处外,last 还为 SortedSet 接口中的缺陷准备了一个工作区。 你在 SortedSet 上所要做的一件事情就是进入 set 的内部并向前或向后迭代。从内部向前迭代是非常容易的:只要采用tailSet 并在它上面迭代就可以了。不幸的是,没有向后迭代的简单途径。 下列惯用程序可获取在一个 sorted set中的第一个元素,在元素空间中它小于一个特定对象 o : Object predecessor = ss.headSet(o).last(); 这是从一个 sorted set 内部的一点向后"走过"一个元素的好办法。它可重复地应用于向后迭代。但不幸的是,它的效率太低,它要求查找返回的每一个元素。 比较器存取操作(Comparator Accessor) SortedSet 接口包含一个被称作 comparator 的存取操作方法,它返回用来对 set 进行排序的Comparator,如果该 set 是按照它的元素的自然顺序排序的,则返回 null 。提供这个方法的目的是为了使 sorted sets 能被拷贝为一个新的排序相同的 sorted sets 。它被 以上 描述的标准 SortedSet 构造函数所采用。 java api接口篇(二)下(6)时间:2010-12-24SortedMap接口 SortedMap是一个将它的项保持为上升顺序的Map, 它按照键的自然顺序进行排序,或按照在SortedMap 创建时提供的 Comparator 进行排序(自然顺序和 Comparators 已在前面的有关 Object Ordering 的章节中做过讨论)。除了正常的 Map 操作之外,该 Map 接口还提供下列操作: 局域视图: 对 sorted Map 执行任意局域操作。 端点:返回在 sorted Map 中的第一个或最后一个键。 比较器存取: 返回对 map 进行排序的Comparator 。 public interface SortedMap extends Map { Comparator comparator(); SortedMap subMap(Object fromKey, Object toKey); SortedMap headMap(Object toKey); SortedMap tailMap(Object fromKey); Object first(); Object last(); } 这个接口是SortedSet的 Map等价物 Map操作 SortedMap 从 Map 继承的操作在 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |