java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

java.util
接口 SortedSet<E>

所有超级接口:
Collection<E>, Iterable<E>, Set<E>
所有已知实现类:
TreeSet

public interface SortedSet<E>
extends Set<E>

保证迭代器按照元素递增顺序遍历的集合,可以按照元素的自然顺序(参见 Comparable)进行排序,或者按照创建有序集合时提供的 Comparator进行排序。要采用此排序,还要提供一些其他操作(此接口是 SortedMap 的集合对应物)。

插入有序集合的所有元素都必须实现 Comparable 接口(或者被指定的 Comparator 所接受)。另外,所有这些元素都必须是可相互比较的e1.compareTo(e2)(或 comparator.compare(e1, e2))对于有序集合中的任意元素 e1e2 都不能抛出 ClassCastException。试图违反这些限制将导致违反规则的方法或者构造方法调用抛出 ClassCastException

注意,如果有序集合正确实现了 Set 接口,则有序集合所保持的顺序(无论是否明确提供了比较器)都必须保持相等一致性相等一致性 的精确定义请参阅 Comparable 接口或 Comparator 接口)。这也是因为 Set 接口是按照 equals 操作定义的,但有序集合使用它的 compareTo(或 compare)方法对所有元素进行比较,因此从有序集合的观点来看,此方法认为相等的两个元素就是相等的。即使顺序没有保持相等一致性,有序集合的行为仍然 定义良好的,只不过没有遵守 Set 接口的常规协定。

所有通用有序集合实现类都应该提供 4 个“标准”构造方法:1) void(不带参数)构造方法,创建空的有序集合,按照元素的自然顺序 排序。2) 带有一个 Comparator 类型参数的构造方法,创建一个空的有序集合,根据指定的比较器排序。3) 带有一个 Collection 类型参数的构造方法,创建一个元素与参数相同的有序集合,按照元素的自然顺序排序。4) 带有一个 SortedSet 类型参数的构造方法,创建一个新的有序集合,元素及排序方法与输入的有序集合相同。除了 JDK 实现(TreeSet 类)遵循此建议外,无法保证强制实施此建议(因为接口不能包含构造方法)。

此接口是 Java Collections Framework 的成员。

从以下版本开始:
1.2
另请参见:
Set, TreeSet, SortedMap, Collection, Comparable, Comparator, ClassCastException

方法摘要
 Comparator<? super E> comparator()
          返回与此有序集合关联的比较器,如果使用元素的自然顺序,则返回 null
 E first()
          返回此有序集合中当前第一个(最小的)元素。
 SortedSet<E> headSet(E toElement)
          返回此有序集合的部分视图,其元素严格小于 toElement
 E last()
          返回此有序集合中最后一个(最大的)元素。
 SortedSet<E> subSet(E fromElement, E toElement)
          返回此有序集合的部分视图,元素范围从 fromElement(包括)到 toElement(不包括)。
 SortedSet<E> tailSet(E fromElement)
          返回此有序集合的部分视图,其元素大于或等于 fromElement
 
从接口 java.util.Set 继承的方法
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray
 

方法详细信息

comparator

Comparator<? super E> comparator()
返回与此有序集合关联的比较器,如果使用元素的自然顺序,则返回 null

返回:
与有序集合关联的比较器,如果使用元素的自然顺序,则返回 null

subSet

SortedSet<E> subSet(E fromElement,
                    E toElement)
返回此有序集合的部分视图,元素范围从 fromElement(包括)到 toElement(不包括)。(如果 fromElementtoElement 相等,则返回空的有序集合)。返回的有序集合由此有序集合支持,因此返回有序集合中的更改将反映在此有序集合中,反之亦然。返回的有序集合支持此有序集合支持的所有可选集合操作。

如果用户试图插入超出指定范围的元素,则此方法返回的有序集合将抛出 IllegalArgumentException

注:此方法总是返回一个半开区间(包含低终结点而不包含高终结点)。如果需要一个闭区间(同时包括两个终结点),而且元素类型允许计算给定值的后继值,则只需要请求从 lowEndpointsuccessor(highEndpoint) 的子区间。例如,假设 s 是一个字符串有序集合。下面的语句将得到一个包含 s 中从 lowhigh(包括)所有字符串的视图:

 SortedSet sub = s.subSet(low, high+"\0");
 
可使用类似的技术生成开区间(两个终结点都不包括)。下面的语句得到包括 s 中从 lowhigh(不包括)所有 String 的视图:
 SortedSet sub = s.subSet(low+"\0", high);
 

参数:
fromElement - subSet 的低终结点(包括)。
toElement - subSet 的高终结点(不包括)。
返回:
有序集合中指定区间的视图。
抛出:
ClassCastException - 如果不能使用集合的比较器(如果此集合没有比较器,则使用自然顺序)比较 fromElementtoElement。如果 fromElementtoElement 不能与集合中的当前元素比较,实现可能抛出此异常,但不要求。
IllegalArgumentException - 如果 fromElement 大于 toElement;或者此集合本身是 subSet、headSet 或 tailSet,而 fromElementtoElement 不在 subSet、headSet 或 tailSet 指定的范围内。
NullPointerException - 如果 fromElementtoElementnull,并且此有序集合不接受 null 元素。

headSet

SortedSet<E> headSet(E toElement)
返回此有序集合的部分视图,其元素严格小于 toElement。返回的有序集合由此有序集合支持,因此返回有序集合中的更改将反映在此有序集合中,反之亦然。返回的有序集合支持所有可选的集合操作。

如果用户试图插入超出指定范围的元素,则此方法返回的有序集合将抛出 IllegalArgumentException

注:此方法总是返回不包括(高)终结点的视图。如果需要包含此终结点的视图,而且元素类型允许计算给定值的后继值,则只需要请求以 successor(highEndpoint) 为界的 headSet。例如,假设 s 是一个字符串有序集合。下面的语句得到一个包含 s 中所有小于或等于 high 的字符串的视图:

    SortedSet head = s.headSet(high+"\0");

参数:
toElement - headSet 的高终结点(不包括)。
返回:
有序集合指定初始范围的视图。
抛出:
ClassCastException - 如果 toElement 与此集合的比较器不兼容(如果此集合没有比较器,而 toElement 没有实现 Comparable)。如果 toElement 不能和集合中的当前元素比较,实现可能抛出此异常,但不要求。
NullPointerException - 如果 toElementnull,并且此有序集合不接受 null 元素。
IllegalArgumentException - 如果此集合本身是一个 subSet、headSet 或 tailSet,而 toElement 不在 subSet、headSet 或 tailSet 指定的范围之内。

tailSet

SortedSet<E> tailSet(E fromElement)
返回此有序集合的部分视图,其元素大于或等于 fromElement。返回的有序集合由此有序集合支持,因此返回有序集合中的更改将反映在此有序集合中,反之亦然。返回的有序集合支持所有可选的集合操作。

如果用户试图插入超出指定范围的元素,则此方法返回的有序集合将抛出 IllegalArgumentException

注:此方法总是返回包括(低)终结点的视图。如果需要不含此终结点的视图,而且元素类型允许计算给定值的后继值,则只需要请求以 successor(lowEndpoint) 为界的 tailSet。例如,假设 s 是一个字符串有序集合。下面的语句将得到一个包含 s 中严格大于 low 的所有字符串的视图:

    SortedSet tail = s.tailSet(low+"\0");

参数:
fromElement - tailSet 的低终结点(包括)。
返回:
有序集合指定的后部范围的视图。
抛出:
ClassCastException - 如果 fromElement 与此集合的比较器不兼容(如果此集合没有比较器,而 fromElement 没有实现 Comparable)。如果 fromElement 不能和集合中的当前元素比较,实现可能抛出此异常,但不要求。
NullPointerException - 如果 fromElementnull,并且此有序集合不接受 null 元素。
IllegalArgumentException - 如果集合本身是一个 subSet、headSet 或 tailSet,而 fromElement 不在 subSet、headSet 或 tailSet 指定的范围之内。

first

E first()
返回此有序集合中当前第一个(最小的)元素。

返回:
有序集合中当前第一个(最小的)元素。
抛出:
NoSuchElementException - 有序集合是空的。

last

E last()
返回此有序集合中最后一个(最大的)元素。

返回:
有序集合中当前最后一个(最大的)元素。
抛出:
NoSuchElementException - 有序集合是空的。

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策