- 类型参数:
E
- 此集合维护的元素类型
- 所有父级接口:
Collection<E>
,Iterable<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)
来消除结果歧义。为避免此类问题,鼓励此接口的实现 not 允许插入 null
元素。 (请注意,已排序的 Comparable
元素集本质上不允许 null
。)
方法 subSet(E, E)
、 headSet(E)
和 tailSet(E)
被指定返回 SortedSet
以允许对 SortedSet
的现有实现进行兼容改造以实现 NavigableSet
,但鼓励此接口的扩展和实现覆盖这些方法以返回 NavigableSet
。
此接口是 Java 集合框架 的成员。
- 自从:
- 1.6
-
方法总结
修饰符和类型方法描述返回此集合中大于或等于给定元素的最小元素,如果没有这样的元素,则返回null
。按降序返回此集合中元素的迭代器。返回此集合中包含的元素的倒序视图。返回此集合中小于或等于给定元素的最大元素,如果没有这样的元素,则返回null
。返回此集合中元素严格小于toElement
的部分的视图。返回此集合的部分视图,其元素小于(或等于,如果inclusive
为真)toElement
。返回此集合中严格大于给定元素的最小元素,如果没有这样的元素,则返回null
。iterator()
按升序返回此集合中元素的迭代器。返回此集合中严格小于给定元素的最大元素,如果没有这样的元素,则返回null
。检索并删除第一个(最低)元素,如果此集合为空,则返回null
。pollLast()
检索并删除最后一个(最高)元素,如果此集合为空,则返回null
。返回此集合的部分视图,其元素范围从fromElement
到toElement
。返回此集合的部分视图,其元素范围从fromElement
(含)到toElement
(不含)。返回此集合中元素大于或等于fromElement
的部分的视图。返回此集合的部分视图,其元素大于(或等于,如果inclusive
为真)fromElement
。在接口 java.util.Collection 中声明的方法
parallelStream, removeIf, stream, toArray
在接口 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
返回此集合中严格小于给定元素的最大元素,如果没有这样的元素,则返回null
。- 参数:
e
- 要匹配的值- 返回:
-
小于
e
的最大元素,或者null
如果没有这样的元素 - 抛出:
ClassCastException
- 如果无法将指定元素与当前集合中的元素进行比较NullPointerException
- 如果指定元素为空且此集合不允许空元素
-
floor
返回此集合中小于或等于给定元素的最大元素,如果没有这样的元素,则返回null
。- 参数:
e
- 要匹配的值- 返回:
-
小于或等于
e
的最大元素,如果没有这样的元素,则为null
- 抛出:
ClassCastException
- 如果无法将指定元素与当前集合中的元素进行比较NullPointerException
- 如果指定元素为空且此集合不允许空元素
-
ceiling
返回此集合中大于或等于给定元素的最小元素,如果没有这样的元素,则返回null
。- 参数:
e
- 要匹配的值- 返回:
-
大于或等于
e
的最小元素,如果没有这样的元素,则为null
- 抛出:
ClassCastException
- 如果无法将指定元素与当前集合中的元素进行比较NullPointerException
- 如果指定元素为空且此集合不允许空元素
-
higher
返回此集合中严格大于给定元素的最小元素,如果没有这样的元素,则返回null
。- 参数:
e
- 要匹配的值- 返回:
-
大于
e
的最小元素,如果没有这样的元素,则为null
- 抛出:
ClassCastException
- 如果无法将指定元素与当前集合中的元素进行比较NullPointerException
- 如果指定元素为空且此集合不允许空元素
-
pollFirst
E pollFirst()检索并删除第一个(最低)元素,如果此集合为空,则返回null
。- 返回:
-
第一个元素,或
null
如果此集合为空
-
pollLast
E pollLast()检索并删除最后一个(最高)元素,如果此集合为空,则返回null
。- 返回:
-
最后一个元素,或
null
如果此集合为空
-
iterator
按升序返回此集合中元素的迭代器。 -
descendingSet
NavigableSet <E > descendingSet()返回此集合中包含的元素的倒序视图。降序集由该集支持,因此对该集的更改会反映在降序集中,反之亦然。如果在对任一集合进行迭代时修改了任一集合(通过迭代器自己的remove
操作除外),则迭代的结果是未定义的。返回的集合的排序等同于
Collections.reverseOrder
(comparator())
。表达式s.descendingSet().descendingSet()
返回s
的视图,本质上等同于s
。- 返回:
- 该集合的逆序视图
-
descendingIterator
按降序返回此集合中元素的迭代器。等效于descendingSet().iterator()
。- 返回:
- 此集合中元素的迭代器,按降序排列
-
subSet
返回此集合的部分视图,其元素范围从fromElement
到toElement
。如果fromElement
和toElement
相等,则返回的集合为空,除非fromInclusive
和toInclusive
都为真。返回的集合受此集合的支持,因此返回集合中的更改会反映在此集合中,反之亦然。返回的集合支持该集合支持的所有可选集合操作。返回的集合将在尝试插入其范围之外的元素时抛出
IllegalArgumentException
。- 参数:
fromElement
- 返回集的低端点fromInclusive
-true
如果低端点要包含在返回的视图中toElement
- 返回集的高端点toInclusive
-true
如果高端点要包含在返回的视图中- 返回:
-
该集合的部分视图,其元素范围从
fromElement
(含)到toElement
(不含) - 抛出:
ClassCastException
- 如果fromElement
和toElement
无法使用该集合的比较器相互比较(或者,如果该集合没有比较器,则使用自然排序)。如果无法将fromElement
或toElement
与当前集合中的元素进行比较,实现可能会(但不是必须)抛出此异常。NullPointerException
- 如果fromElement
或toElement
为空且此集合不允许空元素IllegalArgumentException
- 如果fromElement
大于toElement
;或者如果这个集合本身有一个限制范围,并且fromElement
或toElement
位于范围的边界之外。
-
headSet
返回此集合的部分视图,其元素小于(或等于,如果inclusive
为真)toElement
。返回的集合受此集合的支持,因此返回集合中的更改会反映在此集合中,反之亦然。返回的集合支持该集合支持的所有可选集合操作。返回的集合将在尝试插入其范围之外的元素时抛出
IllegalArgumentException
。- 参数:
toElement
- 返回集的高端点inclusive
-true
如果高端点要包含在返回的视图中- 返回:
-
该集合的部分视图,其元素小于(或等于,如果
inclusive
为真)toElement
- 抛出:
ClassCastException
- 如果toElement
与该集合的比较器不兼容(或者,如果该集合没有比较器,如果toElement
未实现Comparable
)。如果无法将toElement
与集合中的当前元素进行比较,则实现可能会(但不是必须)抛出此异常。NullPointerException
- 如果toElement
为空且此集合不允许空元素IllegalArgumentException
- 如果这个集合本身有一个限制范围,并且toElement
位于范围的边界之外
-
tailSet
返回此集合的部分视图,其元素大于(或等于,如果inclusive
为真)fromElement
。返回的集合受此集合的支持,因此返回集合中的更改会反映在此集合中,反之亦然。返回的集合支持该集合支持的所有可选集合操作。返回的集合将在尝试插入其范围之外的元素时抛出
IllegalArgumentException
。- 参数:
fromElement
- 返回集的低端点inclusive
-true
如果低端点要包含在返回的视图中- 返回:
-
该集合的元素大于或等于
fromElement
的部分的视图 - 抛出:
ClassCastException
- 如果fromElement
与该集合的比较器不兼容(或者,如果该集合没有比较器,如果fromElement
未实现Comparable
)。如果fromElement
无法与集合中当前的元素进行比较,实现可能会(但不是必须)抛出此异常。NullPointerException
- 如果fromElement
为空且此集合不允许空元素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
为空且此集合不允许空元素IllegalArgumentException
- 如果fromElement
大于toElement
;或者如果这个集合本身有一个限制范围,并且fromElement
或toElement
位于范围的边界之外
-
headSet
返回此集合中元素严格小于toElement
的部分的视图。返回的集合受此集合的支持,因此返回集合中的更改会反映在此集合中,反之亦然。返回的集合支持该集合支持的所有可选集合操作。返回的集合将在尝试插入其范围之外的元素时抛出
IllegalArgumentException
。相当于
headSet(toElement, false)
。- 指定者:
headSet
在接口SortedSet<E>
中- 参数:
toElement
- 返回集的高端点(不包括)- 返回:
-
该集合中元素严格小于
toElement
的部分的视图 - 抛出:
ClassCastException
- 如果toElement
与该集合的比较器不兼容(或者,如果该集合没有比较器,如果toElement
未实现Comparable
)。如果无法将toElement
与集合中的当前元素进行比较,则实现可能会(但不是必须)抛出此异常。NullPointerException
- 如果toElement
为空且此集合不允许空元素IllegalArgumentException
- 如果这个集合本身有一个限制范围,并且toElement
位于范围的边界之外
-
tailSet
返回此集合中元素大于或等于fromElement
的部分的视图。返回的集合受此集合的支持,因此返回集合中的更改会反映在此集合中,反之亦然。返回的集合支持该集合支持的所有可选集合操作。返回的集合将在尝试插入其范围之外的元素时抛出
IllegalArgumentException
。相当于
tailSet(fromElement, true)
。- 指定者:
tailSet
在接口SortedSet<E>
中- 参数:
fromElement
- 返回集的低端点(含)- 返回:
-
该集合的元素大于或等于
fromElement
的部分的视图 - 抛出:
ClassCastException
- 如果fromElement
与该集合的比较器不兼容(或者,如果该集合没有比较器,如果fromElement
未实现Comparable
)。如果fromElement
无法与集合中当前的元素进行比较,实现可能会(但不是必须)抛出此异常。NullPointerException
- 如果fromElement
为空且此集合不允许空元素IllegalArgumentException
- 如果这个集合本身有一个限制范围,并且fromElement
位于范围的边界之外
-