Module  java.base
软件包  java.util

Interface NavigableSet<E>

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


    public interface NavigableSet<E>
    extends SortedSet<E>
    A SortedSet扩展了导航方法报告给定搜索目标的最匹配。 方法lower(E)floor(E)ceiling(E)higher(E)返回元件分别大于给定的元素小于,小于或等于,大于或等于,大于,返回null如果不存在这样的元件。

    A NavigableSet可以按升序或降序进行访问和遍历。 descendingSet()方法返回集合的视图,其中所有关系和方向方法的意义都反转。 上升操作和观点的表现可能比降序更快。 该接口另外定义方法pollFirst()pollLast() ,返回并移除最低和最高元素(如果存在),否则返回null 方法subSet(E, boolean, E, boolean)headSet(E, boolean)tailSet(E, boolean)从等命名的不同SortedSet在接受描述的下限和上限是否是包含性的抗排斥附加参数的方法。 任何NavigableSet子集必须实现NavigableSet接口。

    在允许null元素的实现中,导航方法的返回值可能不明确。 然而,即使在这种情况下,结果可以通过检查contains(null)来消除歧义。 为了避免这样的问题,鼓励这个接口的实现允许插入null元件。 (请注意, Comparable元素的排序集本质上不允许null ))

    方法subSet(E, E)headSet(E) ,并tailSet(E)被指定为返回SortedSet ,以允许现有的实现SortedSet能相容地改进来实现NavigableSet ,但鼓励扩展和该接口的实现重写这些方法返回NavigableSet

    此接口是Java Collections Framework的成员。

    从以下版本开始:
    1.6
    • 方法摘要

      所有方法  接口方法  抽象方法 
      Modifier and Type 方法 描述
      E ceiling​(E e)
      返回此集合中最小元素大于或等于给定元素,如果没有此元素,则 null
      Iterator<E> descendingIterator​()
      以降序返回该集合中的元素的迭代器。
      NavigableSet<E> descendingSet​()
      返回此集合中包含的元素的反向排序视图。
      E floor​(E e)
      返回该集合中最大的元素小于或等于给定元素,如果没有这样的元素,则 null
      SortedSet<E> headSet​(E toElement)
      返回此集合的部分的视图,其元素严格小于 toElement
      NavigableSet<E> headSet​(E toElement, boolean inclusive)
      返回此集合的部分的视图,其元素小于(或等于,如果 inclusive为真) toElement
      E higher​(E e)
      返回此集中的最小元素严格大于给定元素,如果没有此元素,则 null
      Iterator<E> iterator​()
      以升序返回此集合中的元素的迭代器。
      E lower​(E e)
      返回这个集合中最大的元素严格小于给定的元素,如果没有这样的元素,则 null
      E pollFirst​()
      检索并删除第一个(最低)元素,如果此集合为空,则返回 null
      E pollLast​()
      检索并删除最后一个(最高)元素,如果此集合为空,则返回 null
      NavigableSet<E> subSet​(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
      返回该集合的部分的视图,其元素的范围从 fromElementtoElement
      SortedSet<E> subSet​(E fromElement, E toElement)
      返回此集合的部分的视图,其元素的范围从 fromElement (包括)到 toElement ,排他。
      SortedSet<E> tailSet​(E fromElement)
      返回此组件的元素大于或等于 fromElement的部分的视图。
      NavigableSet<E> tailSet​(E fromElement, boolean inclusive)
      返回此集合的部分的视图,其元素大于(或等于,如果 inclusive为真) fromElement
    • 方法详细信息

      • lower

        E lower​(E e)
        返回这个集合中最大的元素,严格小于给定的元素,如果没有这样的元素,则 null
        参数
        e - 要匹配的值
        结果
        最大元素小于 e ,如果没有这样的元素, null
        异常
        ClassCastException - 如果指定的元素不能与当前集合中的元素进行比较
        NullPointerException - 如果指定的元素为空,并且该集合不允许空元素
      • floor

        E floor​(E e)
        返回该集合中最大的元素小于或等于给定的元素,如果没有这样的元素,则 null
        参数
        e - 要匹配的值
        结果
        最大元素小于或等于 e ,如果没有这样的元素, null
        异常
        ClassCastException - 如果指定的元素不能与当前集合中的元素进行比较
        NullPointerException - 如果指定的元素为空,并且此集合不允许空元素
      • ceiling

        E ceiling​(E e)
        返回此集合中最小元素大于或等于给定元素,如果没有此元素,则 null
        参数
        e - 要匹配的值
        结果
        最小元素大于或等于 e ,或 null如果没有这样的元素
        异常
        ClassCastException - 如果指定的元素不能与当前集合中的元素进行比较
        NullPointerException - 如果指定的元素为空,并且该集合不允许空元素
      • higher

        E higher​(E e)
        返回这个集合中的最小元素严格大于给定的元素,如果没有这样的元素,则 null
        参数
        e - 要匹配的值
        结果
        最小元素大于 e ,如果没有这样的元素, null
        异常
        ClassCastException - 如果指定的元素不能与当前集合中的元素进行比较
        NullPointerException - 如果指定的元素为空,并且此集合不允许空元素
      • pollFirst

        E pollFirst​()
        检索并删除第一个(最低)元素,如果此集合为空,则返回 null
        结果
        第一个元素,或 null如果此集合为空
      • pollLast

        E pollLast​()
        检索并删除最后一个(最高)元素,如果此集合为空,则返回 null
        结果
        最后一个元素,或 null如果此集合为空
      • descendingSet

        NavigableSet<E> descendingSet​()
        返回此集合中包含的元素的反向排序视图。 下降集由此集合支持,因此对集合的更改反映在下降集中,反之亦然。 如果任何一个集合都被修改,而任一集合中的迭代正在进行(除了通过迭代器自己的remove操作),迭代的结果是未定义的。

        返回的集合的订单等价于Collections.reverseOrder (comparator()) 表达s.descendingSet().descendingSet()返回一个视图的s实质上等同于s

        结果
        这个集合的逆序视图
      • descendingIterator

        Iterator<E> descendingIterator​()
        以降序返回该集合中的元素的迭代器。 等效于descendingSet().iterator()
        结果
        在这个集合中的元素的迭代器,按降序
      • subSet

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

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

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

        NavigableSet<E> headSet​(E toElement,
                                boolean inclusive)
        返回此集合的部分的视图,该部分的元素小于(或等于,如果inclusive为真) toElement 返回的集合由此集合支持,因此返回集合中的更改将反映在此集合中,反之亦然。 返回的集合支持该集支持的所有可选集合操作。

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

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

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

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

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

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

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

        相当于subSet(fromElement, true, toElement, false)

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

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

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

        相当于headSet(toElement, false)

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

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

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

        相当于tailSet(fromElement, true)

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