模块 java.base
 java.util

接口 NavigableSet<E>

类型参数:
E - 此集合维护的元素类型
所有父级接口:
Collection<E> , Iterable<E> , Set<E> , SortedSet<E>
所有已知的实现类:
ConcurrentSkipListSet , TreeSet

public interface NavigableSet<E> extends SortedSet <E>
SortedSet 扩展了导航方法,报告了给定搜索目标的最接近匹配项。方法 lower(E) floor(E) ceiling(E) higher(E) 分别返回小于、小于或等于、大于或等于和大于给定元素的元素,如果没有这样的元素则返回 null

可以按升序或降序访问和遍历NavigableSetdescendingSet() 方法返回集合的视图,其中所有关系和方向方法的意义都颠倒了。上升操作和视图的性能可能比下降操作和视图的性能更快。此接口还定义了方法 pollFirst() pollLast() 返回并移除最低和最高元素(如果存在),否则返回 null 。方法 subSet(E, boolean, E, boolean) headSet(E, boolean) tailSet(E, boolean) 与名称相似的 SortedSet 方法的不同之处在于它接受额外的参数来描述下限和上限是包含还是排除。任何 NavigableSet 的子集必须实现 NavigableSet 接口。

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

方法 subSet(E, E) headSet(E) tailSet(E) 被指定返回 SortedSet 以允许对 SortedSet 的现有实现进行兼容改造以实现 NavigableSet ,但鼓励此接口的扩展和实现覆盖这些方法以返回 NavigableSet

此接口是 Java 集合框架 的成员。

自从:
1.6
  • 方法总结

    修饰符和类型
    方法
    描述
    E
    ceiling(E e)
    返回此集合中大于或等于给定元素的最小元素,如果没有这样的元素,则返回 null
    按降序返回此集合中元素的迭代器。
    返回此集合中包含的元素的倒序视图。
    E
    floor(E e)
    返回此集合中小于或等于给定元素的最大元素,如果没有这样的元素,则返回 null
    headSet(E toElement)
    返回此集合中元素严格小于 toElement 的部分的视图。
    headSet(E toElement, boolean inclusive)
    返回此集合的部分视图,其元素小于(或等于,如果 inclusive 为真) toElement
    E
    higher(E e)
    返回此集合中严格大于给定元素的最小元素,如果没有这样的元素,则返回 null
    按升序返回此集合中元素的迭代器。
    E
    lower(E e)
    返回此集合中严格小于给定元素的最大元素,如果没有这样的元素,则返回 null
    E
    检索并删除第一个(最低)元素,如果此集合为空,则返回 null
    E
    检索并删除最后一个(最高)元素,如果此集合为空,则返回 null
    subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
    返回此集合的部分视图,其元素范围从 fromElementtoElement
    subSet(E fromElement, E toElement)
    返回此集合的部分视图,其元素范围从 fromElement(含)到 toElement(不含)。
    tailSet(E fromElement)
    返回此集合中元素大于或等于 fromElement 的部分的视图。
    tailSet(E fromElement, boolean inclusive)
    返回此集合的部分视图,其元素大于(或等于,如果 inclusive 为真) fromElement

    在接口 java.util.Collection 中声明的方法

    parallelStream, removeIf, stream, toArray

    在接口 java.lang.Iterable 中声明的方法

    forEach

    在接口 java.util.Set 中声明的方法

    add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, remove, removeAll, retainAll, size, toArray, toArray

    在接口 java.util.SortedSet 中声明的方法

    comparator, first, last, spliterator
  • 方法详情

    • 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 如果此集合为空
    • iterator

      Iterator <E > iterator()
      按升序返回此集合中元素的迭代器。
      指定者:
      iterator 在接口 Collection<E>
      指定者:
      iterator 在接口 Iterable<E>
      指定者:
      iterator 在接口 Set<E>
      返回:
      此集合中元素的迭代器,按升序排列
    • 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 为真) 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)

      指定者:
      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)

      指定者:
      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)

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