Module  java.base
软件包  java.util

Interface SortedSet<E>

  • 参数类型
    E - 由此集合维护的元素的类型
    All Superinterfaces:
    Collection<E>Iterable<E>Set<E>
    All Known Subinterfaces:
    NavigableSet<E>
    所有已知实现类:
    ConcurrentSkipListSetTreeSet


    public interface SortedSet<E>
    extends Set<E>
    A Set进一步提供了其元素的总排序 元素使用其natural orderingComparator进行排序,通常在排序集创建时提供。 集合的迭代器将以递增的元素顺序遍历集合。 提供了几个额外的操作来利用订购。 (此接口是SortedMap的设置模拟。)

    插入到排序集中的所有元素必须实现Comparable接口(或被指定的比较器接受)。 此外,所有这些元素必须相互可比较e1.compareTo(e2) (或comparator.compare(e1, e2) )不得为排序集中的任何元素e1e2抛出ClassCastException 尝试违反此限制将导致违规方法或构造函数调用抛出ClassCastException

    请注意,如果排序集正确实现Set接口,排序集所保留的排序(无论是否提供显式比较器)必须与equals一致 (见Comparable接口或Comparator接口,以确定与等于一致的精确定义)这是因为Set接口是根据equals操作定义的,但是排序集使用其compareTo (或compare )方法执行所有元素比较因此,从排序集合的观点来看,通过该方法认为相等的两个元素是相等的。 排序集合的行为明确定义的,即使其排序与equals不一致; 它只是不符合Set界面的总体合同。

    所有通用排序集实现类应提供四个“标准”构造函数:1)一个void(无参数)构造函数,它创建一个根据其元素的自然顺序排序的空排序集。 2)具有Comparator型单个参数的构造函数,它创建根据指定的比较器排序的空的排序集。 3)具有Collection类型的单个参数的构造函数,它创建一个具有与其参数相同的元素的新的排序集合,并根据元素的自然排序进行排序。 4)具有类型为SortedSet的单个参数的构造函数,其创建具有与输入排序集相同的元素和相同顺序的新的排序集。 无法执行此建议,因为接口不能包含构造函数。

    注意:几种方法返回限制范围的子集。 这种范围是半开放的 ,也就是说,它们包括其低端点,但不包括其高端点(如适用)。 如果需要一个封闭范围 (包括两个端点),并且元素类型允许计算给定值的后继,只需将子范围从lowEndpoint请求到successor(highEndpoint) 例如,假设s是一组排序的字符串。 以下成语取得包含slowhigh所有字符串的视图,包括:

      SortedSet<String> sub = s.subSet(low, high+"\0"); 
    可以使用类似的技术来生成开放范围 (其不包含端点)。 以下成语获得包含s中所有字符串的slowhigh ,独占:
      SortedSet<String> sub = s.subSet(low+"\0", high); 

    此界面是Java Collections Framework的成员。

    从以下版本开始:
    1.2
    另请参见:
    SetTreeSetSortedMapCollectionComparableComparatorClassCastException
    • 方法详细信息

      • comparator

        Comparator<? super E> comparator​()
        返回用于为了在这个组中的元素,或比较null如果这个集使用natural ordering的元素。
        结果
        比较器用于对该集合中的元素进行排序,如果此集合使用其元素的自然排序, null
      • subSet

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

        返回的集合将抛出一个IllegalArgumentException ,试图在其范围之外插入一个元素。

        参数
        fromElement - 返回集合的低端点(含)
        toElement - 返回集合的高端点(独占)
        结果
        该集合的部分视图的元素范围为 fromElement ,包括 toElement ,独占
        异常
        ClassCastException - 如果fromElementtoElement无法使用该集合的比较器彼此进行比较(或者如果该集合没有比较器,则使用自然排序)。 如果fromElementtoElement无法与当前集合中的元素进行比较,则实施可能但不是必须抛出此异常。
        NullPointerException - 如果 fromElementtoElement为空,并且此集合不允许空元素
        IllegalArgumentException - 如果fromElement大于toElement ; 或者如果此设置本身具有限制范围,并且fromElementtoElement位于范围的边界之外
      • headSet

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

        返回的集合将抛出一个IllegalArgumentException ,试图将一个元素插入其范围之外。

        参数
        toElement - 返回集合的高端点(独占)
        结果
        该集合的部分视图的元素严格小于 toElement
        异常
        ClassCastException - 如果toElement与该组比较器不兼容(或者如果该集合没有比较器,则toElement不实现Comparable )。 如果toElement无法与当前集合中的元素进行比较,则实施可能但不是必须抛出此异常。
        NullPointerException - 如果 toElement为空,并且此集合不允许空元素
        IllegalArgumentException - 如果此设置本身具有限制范围,并且 toElement位于范围的边界之外
      • tailSet

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

        返回的集合将抛出一个IllegalArgumentException ,试图在其范围之外插入一个元素。

        参数
        fromElement - 返回集合的低端点(含)
        结果
        该集合的部分的视图,其元素大于或等于 fromElement
        异常
        ClassCastException - 如果fromElement与此集合的比较器不兼容(或者如果该集合没有比较器,则fromElement不实现Comparable )。 如果fromElement无法与当前集合中的元素进行比较,则实施可能但不是必须抛出此异常。
        NullPointerException - 如果 fromElement为空,并且此集合不允许空元素
        IllegalArgumentException - 如果此设置本身具有限制范围,并且 fromElement位于范围的范围之外
      • first

        E first​()
        返回此集合中当前的第一个(最低)元素。
        结果
        当前在这个集合中的第一(最低)元素
        异常
        NoSuchElementException - 如果此设置为空
      • last

        E last​()
        返回此集合中当前的最后(最高)元素。
        结果
        当前在此集合中的最后(最高)元素
        异常
        NoSuchElementException - 如果此设置为空