- 类型参数:
-
E- 此集合中维护的元素类型
- 所有超接口:
-
Collection<E>,Iterable<E>,SequencedCollection<E>,SequencedSet<E>,Set<E>,SortedSet<E>
- 所有已知实现类:
-
ConcurrentSkipListSet,TreeSet
SortedSet,具有报告给定搜索目标的最接近匹配项的导航方法。方法lower(E)、floor(E)、ceiling(E)和higher(E)分别返回小于、小于或等于、大于或等于给定元素的元素,并在没有这样的元素时返回null。
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集合框架的成员。
- 自Java版本:
- 1.6
-
Method Summary
Modifier and TypeMethodDescription返回此集合中大于或等于给定元素的最小元素,如果没有这样的元素则返回null。返回此集合中元素的迭代器,按降序排列。返回此集合中包含的元素的逆序视图。返回此集合中小于或等于给定元素的最大元素,如果没有这样的元素则返回null。返回此集合中严格小于toElement的部分视图。返回此集合中元素小于(如果inclusive为true,则为小于或等于)toElement的部分视图。返回此集合中严格大于给定元素的最小元素,如果没有这样的元素则返回null。iterator()返回此集合中元素的迭代器,按升序排列。返回此集合中严格小于给定元素的最大元素,如果没有这样的元素则返回null。检索并删除第一个(最低)元素,如果此集合为空则返回null。pollLast()检索并删除最后一个(最高)元素,如果此集合为空则返回null。default E删除并返回此集合的第一个元素(可选操作)。default E删除并返回此集合的最后一个元素(可选操作)。default NavigableSet<E> reversed()返回此集合的逆序视图。返回此集合中元素范围从fromElement到toElement的视图。返回此集合中元素范围从fromElement(包括)到toElement的视图。返回此集合中大于或等于fromElement的部分视图。返回此集合中元素大于(如果inclusive为true,则为大于或等于)fromElement的部分视图。Methods declared in interface java.util.Collection
parallelStream, removeIf, stream, toArrayMethods declared in interface java.util.Set
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, remove, removeAll, retainAll, size, toArray, toArrayMethods declared in interface java.util.SortedSet
addFirst, addLast, comparator, first, getFirst, getLast, last, spliterator
-
Method Details
-
lower
返回此集合中严格小于给定元素的最大元素,如果没有这样的元素则返回null。- 参数:
-
e- 要匹配的值 - 返回:
-
小于
e的最大元素,如果没有这样的元素则返回null - 抛出:
-
ClassCastException- 如果指定的元素无法与集合中当前元素进行比较 -
NullPointerException- 如果指定的元素为null且此集合不允许null元素
-
floor
返回此集合中小于或等于给定元素的最大元素,如果没有这样的元素则返回null。- 参数:
-
e- 要匹配的值 - 返回:
-
小于或等于
e的最大元素,如果没有这样的元素则返回null - 抛出:
-
ClassCastException- 如果指定的元素无法与集合中当前元素进行比较 -
NullPointerException- 如果指定的元素为null且此集合不允许null元素
-
ceiling
返回此集合中大于或等于给定元素的最小元素,如果没有这样的元素则返回null。- 参数:
-
e- 要匹配的值 - 返回:
-
大于或等于
e的最小元素,如果没有这样的元素则返回null - 抛出:
-
ClassCastException- 如果指定的元素无法与集合中当前元素进行比较 -
NullPointerException- 如果指定的元素为null且此集合不允许null元素
-
higher
返回此集合中严格大于给定元素的最小元素,如果没有这样的元素则返回null。- 参数:
-
e- 要匹配的值 - 返回:
-
大于
e的最小元素,如果没有这样的元素则返回null - 抛出:
-
ClassCastException- 如果指定的元素无法与集合中当前元素进行比较 -
NullPointerException- 如果指定的元素为null且此集合不允许null元素
-
pollFirst
E pollFirst()检索并删除第一个(最低)元素,如果此集合为空则返回null。- 返回:
-
第一个元素,如果此集合为空则返回
null
-
pollLast
E pollLast()检索并删除最后一个(最高)元素,如果此集合为空则返回null。- 返回:
-
最后一个元素,如果此集合为空则返回
null
-
iterator
返回此集合中元素的迭代器,按升序排列。 -
descendingSet
NavigableSet<E> descendingSet()返回包含在此集合中的元素的逆序视图。降序集合由此集合支持,因此对集合的更改会反映在降序集合中,反之亦然。如果在对任一集合进行迭代时修改了任一集合(除非通过迭代器自己的remove操作),则迭代的结果是未定义的。返回的集合具有等效于
Collections.reverseOrder(comparator())的排序。表达式s.descendingSet().descendingSet()返回与s本质上等效的视图。- 返回:
- 此集合的逆序视图
-
descendingIterator
返回此集合中元素的迭代器,按降序排列。在效果上等同于descendingSet().iterator()。- 返回:
- 此集合中元素的迭代器,按降序排列
-
subSet
返回此集合部分元素的视图,这些元素的范围从fromElement到toElement。如果fromElement和toElement相等,则返回的集合为空,除非fromInclusive和toInclusive都为true。返回的集合由此集合支持,因此返回集合中的更改会反映在此集合中,反之亦然。返回的集合支持此集合支持的所有可选集合操作。如果尝试在其范围之外插入元素,则返回的集合将抛出
IllegalArgumentException。- 参数:
-
fromElement- 返回集合的低端点 -
fromInclusive- 如果要在返回视图中包含低端点,则为true -
toElement- 返回集合的高端点 -
toInclusive- 如果要在返回视图中包含高端点,则为true - 返回:
-
从
fromElement(包括)到toElement(不包括)的此集合部分元素的视图 - 抛出:
-
ClassCastException- 如果无法使用此集合的比较器将fromElement和toElement相互比较(或者,如果集合没有比较器,则使用自然排序)。如果fromElement或toElement无法与集合中当前元素进行比较,则实现可能会但不是必须抛出此异常。 -
NullPointerException- 如果fromElement或toElement为null且此集合不允许空元素 -
IllegalArgumentException- 如果fromElement大于toElement;或者如果此集合本身具有受限范围,并且fromElement或toElement位于范围的边界之外
-
headSet
返回此集合部分元素的视图,这些元素小于(如果inclusive为true,则小于或等于)toElement。返回的集合由此集合支持,因此返回集合中的更改会反映在此集合中,反之亦然。返回的集合支持此集合支持的所有可选集合操作。如果尝试在其范围之外插入元素,则返回的集合将抛出
IllegalArgumentException。- 参数:
-
toElement- 返回集合的高端点 -
inclusive- 如果要在返回视图中包含高端点,则为true - 返回:
-
小于(如果
inclusive为true,则小于或等于)toElement的此集合部分元素的视图 - 抛出:
-
ClassCastException- 如果toElement与此集合的比较器不兼容(或者,如果集合没有比较器,则toElement未实现Comparable)。如果toElement无法与集合中当前元素进行比较,则实现可能会但不是必须抛出此异常。 -
NullPointerException- 如果toElement为null且此集合不允许空元素 -
IllegalArgumentException- 如果此集合本身具有受限范围,并且toElement位于范围的边界之外
-
tailSet
返回此集合部分元素的视图,这些元素大于(如果inclusive为true,则大于或等于)fromElement。返回的集合由此集合支持,因此返回集合中的更改会反映在此集合中,反之亦然。返回的集合支持此集合支持的所有可选集合操作。如果尝试在其范围之外插入元素,则返回的集合将抛出
IllegalArgumentException。- 参数:
-
fromElement- 返回集合的低端点 -
inclusive- 如果要在返回视图中包含低端点,则为true - 返回:
-
大于或等于
fromElement的此集合部分元素的视图 - 抛出:
-
ClassCastException- 如果fromElement与此集合的比较器不兼容(或者,如果集合没有比较器,则fromElement未实现Comparable)。如果fromElement无法与集合中当前元素进行比较,则实现可能会但不是必须抛出此异常。 -
NullPointerException- 如果fromElement为null且此集合不允许空元素 -
IllegalArgumentException- 如果此集合本身具有受限范围,并且fromElement位于范围的边界之外
-
subSet
返回此集合部分元素的视图,这些元素的范围从fromElement(包括)到toElement(不包括)。(如果fromElement和toElement相等,则返回的集合为空。)返回的集合由此集合支持,因此返回集合中的更改会反映在此集合中,反之亦然。返回的集合支持此集合支持的所有可选集合操作。如果尝试在其范围之外插入元素,则返回的集合将抛出
IllegalArgumentException。等效于
subSet(fromElement, true, toElement, false)。- 指定者:
-
subSet在接口SortedSet<E>中 - 参数:
-
fromElement- 返回集合的低端点(包括) -
toElement- 返回集合的高端点(不包括) - 返回:
-
从
fromElement(包括)到toElement(不包括)的此集合部分元素的视图 - 抛出:
-
ClassCastException- 如果无法使用此集合的比较器将fromElement和toElement相互比较(或者,如果集合没有比较器,则使用自然排序)。如果fromElement或toElement无法与集合中当前元素进行比较,则实现可能会但不是必须抛出此异常。 -
NullPointerException- 如果fromElement或toElement为null且此集合不允许空元素 -
IllegalArgumentException- 如果fromElement大于toElement;或者如果此集合本身具有受限范围,并且fromElement或toElement位于范围的边界之外
-
headSet
返回此集合部分元素的视图,这些元素严格小于toElement。返回的集合由此集合支持,因此返回集合中的更改会反映在此集合中,反之亦然。返回的集合支持此集合支持的所有可选集合操作。如果尝试在其范围之外插入元素,则返回的集合将抛出
IllegalArgumentException。等效于
headSet(toElement, false)。- 指定者:
-
headSet在接口SortedSet<E>中 - 参数:
-
toElement- 返回集合的高端点(不包括) - 返回:
-
小于
toElement的此集合部分元素的视图 - 抛出:
-
ClassCastException- 如果toElement与此集合的比较器不兼容(或者,如果集合没有比较器,则toElement未实现Comparable)。如果toElement无法与集合中当前元素进行比较,则实现可能会但不是必须抛出此异常。 -
NullPointerException- 如果toElement为null且此集合不允许空元素 -
IllegalArgumentException- 如果此集合本身具有受限范围,并且toElement位于范围的边界之外
-
tailSet
返回该集合中元素大于或等于fromElement的部分的视图。返回的集合由该集合支持,因此返回集合中的更改会反映在该集合中,反之亦然。返回的集合支持该集合支持的所有可选集合操作。尝试插入超出范围的元素时,返回的集合将抛出
IllegalArgumentException异常。等效于
tailSet(fromElement, true)。- 指定者:
-
tailSet在接口SortedSet<E>中 - 参数:
-
fromElement- 返回集合的低端点(包括) - 返回:
-
返回该集合中元素大于或等于
fromElement的部分的视图 - 抛出:
-
ClassCastException- 如果fromElement与该集合的比较器不兼容(或者,如果集合没有比较器,并且fromElement没有实现Comparable),则抛出此异常。如果fromElement无法与当前集合中的元素进行比较,实现可以但不是必须抛出此异常。 -
NullPointerException- 如果fromElement为null且该集合不允许空元素 -
IllegalArgumentException- 如果该集合本身具有受限范围,并且fromElement超出范围的边界
-
removeFirst
移除并返回该集合的第一个元素(可选操作)。- 指定者:
-
removeFirst在接口SequencedCollection<E>中 - 指定者:
-
removeFirst在接口SortedSet<E>中 - 实现要求:
-
如果该集合不为空,则该接口中的实现返回调用
pollFirst方法的结果。否则,抛出NoSuchElementException。 - 返回:
- 被移除的元素
- 抛出:
-
NoSuchElementException- 如果该集合为空 -
UnsupportedOperationException- 如果该集合实现不支持此操作 - 自:
- 21
-
removeLast
移除并返回该集合的最后一个元素(可选操作)。- 指定者:
-
removeLast在接口SequencedCollection<E>中 - 指定者:
-
removeLast在接口SortedSet<E>中 - 实现要求:
-
如果该集合不为空,则该接口中的实现返回调用
pollLast方法的结果。否则,抛出NoSuchElementException。 - 返回:
- 被移除的元素
- 抛出:
-
NoSuchElementException- 如果该集合为空 -
UnsupportedOperationException- 如果该集合实现不支持此操作 - 自:
- 21
-
reversed
返回该集合的逆序视图。返回视图中元素的遭遇顺序与该集合中元素的遭遇顺序相反。逆序排序会影响所有对顺序敏感的操作,包括对返回视图的视图集合的操作。如果集合实现允许修改此视图,则对底层集合的修改会“写入”到该视图。对底层集合的更改可能会或可能不会在此逆序视图中可见,这取决于实现。此方法等效于
descendingSet。- 指定者:
-
reversed在接口SequencedCollection<E>中 - 指定者:
-
reversed在接口SequencedSet<E>中 - 指定者:
-
reversed在接口SortedSet<E>中 - 实现要求:
-
该接口中的实现返回调用
descendingSet方法的结果。 - 返回:
-
作为
NavigableSet的该集合的逆序视图 - 自:
- 21
-