E
- 由此集合维护的元素的类型
public interface NavigableSet<E> extends SortedSet<E>
SortedSet
扩展了导航方法,报告给定搜索目标的最匹配的匹配。
方法lower
, floor
, ceiling
和higher
返回元件分别大于给定的元素小于,小于或等于,大于或等于,大于,返回null
如果不存在这样的元件。
A NavigableSet
可以按升序或降序进行访问和遍历。
descendingSet
方法返回集合的视图,其中所有关系和方向方法的感觉都反转。
上升操作和观点的表现可能比降序更快。
该接口另外定义方法pollFirst
和pollLast
,返回并移除最低和最高元素(如果存在),否则返回null
。
方法subSet
, headSet
和tailSet
从等命名的不同SortedSet
在接受描述的下限和上限是否是包含性的抗排斥附加参数的方法。
任何NavigableSet
子集必须实现NavigableSet
接口。
在允许null
元素的实现中,导航方法的返回值可能不明确。 然而,即使在这种情况下,结果可以通过检查contains(null)
来消除contains(null)
。 为了避免这样的问题,鼓励这个接口的实现不允许插入null
元件。 (请注意, Comparable
元素的排序集本质上不允许null
))
方法subSet(E, E)
, headSet(E)
和tailSet(E)
被指定为返回SortedSet
,以允许现有的实现SortedSet
能相容地改进来实现NavigableSet
,但鼓励扩展和该接口的实现重写这些方法返回NavigableSet
。
此接口是成员Java Collections Framework 。
Modifier and Type | Method and Description |
---|---|
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)
返回此集合的部分的视图,其元素的范围从
fromElement 到
toElement 。
|
SortedSet<E> |
subSet(E fromElement, E toElement)
返回此集合的部分的视图,其元素的范围从
fromElement (包括)到
toElement ,排他。
|
SortedSet<E> |
tailSet(E fromElement)
返回此组件的元素大于或等于
fromElement的部分的视图。
|
NavigableSet<E> |
tailSet(E fromElement, boolean inclusive)
返回此集合的部分的视图,其元素大于(或等于,如果
inclusive 为真)
fromElement 。
|
comparator, first, last, spliterator
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, remove, removeAll, retainAll, size, toArray, toArray
parallelStream, removeIf, stream
E lower(E e)
null
。
e
- 要匹配的值
e
,或
null
如果没有这样的元素
ClassCastException
- 如果指定的元素不能与当前集合中的元素进行比较
NullPointerException
- 如果指定的元素为空,并且该集合不允许空元素
E floor(E e)
null
。
e
- 要匹配的值
e
,或
null
如果没有这样的元素
ClassCastException
- 如果指定的元素不能与当前集合中的元素进行比较
NullPointerException
- 如果指定的元素为空,并且该集合不允许空元素
E ceiling(E e)
null
。
e
- 要匹配的值
e
或
null
如果没有这样的元素
ClassCastException
- 如果指定的元素不能与当前集合中的元素进行比较
NullPointerException
- 如果指定的元素为空,并且此集合不允许空元素
E higher(E e)
null
。
e
- 要匹配的值
e
,或
null
如果没有这样的元素
ClassCastException
- 如果指定的元素不能与当前集合中的元素进行比较
NullPointerException
- 如果指定的元素为空,并且该集合不允许空元素
E pollFirst()
null
。
null
如果此集合为空
E pollLast()
null
。
null
如果该集合为空
NavigableSet<E> descendingSet()
remove
操作),迭代的结果是未定义的。
返回的集合的订购等效于Collections.reverseOrder
(comparator()) 。 表达式s.descendingSet().descendingSet()
返回s.descendingSet().descendingSet()
的视图, s
相当于s
。
Iterator<E> descendingIterator()
descendingSet().iterator()
。
NavigableSet<E> subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
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
位于范围的边界之外。
NavigableSet<E> headSet(E toElement, boolean inclusive)
inclusive
为真) toElement
。
返回的集合由此集合支持,因此返回集合中的更改将反映在此集合中,反之亦然。
返回的集合支持该集支持的所有可选集合操作。
返回的集合将抛出一个IllegalArgumentException
,试图在其范围之外插入一个元素。
toElement
- 返回集合的高端点
inclusive
-
true
如果高端点要包含在返回的视图中
inclusive
为真)
toElement
ClassCastException
- 如果toElement
与此组toElement
器不兼容(或者如果该集合没有比较器,则toElement
不实现Comparable
)。
如果toElement
无法与当前集合中的元素进行比较,则实施可能但不是必须抛出此异常。
NullPointerException
- 如果
toElement
为空,并且此集合不允许空元素
IllegalArgumentException
- 如果此设置本身具有限制范围,并且
toElement
位于范围的范围之外
NavigableSet<E> tailSet(E fromElement, boolean inclusive)
inclusive
为真) fromElement
。
返回的集合由此集合支持,因此返回集合中的更改将反映在此集合中,反之亦然。
返回的集合支持该集支持的所有可选集合操作。
返回的集合将抛出一个IllegalArgumentException
,试图在其范围之外插入一个元素。
fromElement
- 返回集合的低端点
inclusive
-
true
如果低端点要包含在返回的视图中
fromElement
ClassCastException
- 如果fromElement
与此设置的fromElement
器不兼容(或如果该集合没有比较器,则fromElement
不实现Comparable
)。
如果fromElement
无法与当前集合中的元素进行比较,则实施可能但不是必须抛出此异常。
NullPointerException
- 如果
fromElement
为空,并且此集合不允许空元素
IllegalArgumentException
- 如果此设置本身具有限制范围,并且
fromElement
位于范围的范围之外
SortedSet<E> subSet(E fromElement, E toElement)
返回的集合将抛出一个IllegalArgumentException ,试图在其范围之外插入一个元素。
相当于subSet(fromElement, true, toElement, false)
。
subSet
在界面
SortedSet<E>
fromElement
- 返回集合的低端点(含)
toElement
- 返回集合的高端点(独占)
ClassCastException
- 如果fromElement和toElement无法使用该集合的比较器彼此进行比较(或者如果该集合没有比较器,则使用自然排序)。
如果fromElement或toElement无法与当前在集合中的元素进行比较,则实施可能但不是必须抛出此异常。
NullPointerException
- 如果
fromElement或
toElement为空,并且该集合不允许空元素
IllegalArgumentException
- 如果fromElement大于toElement ;
或者如果此设置本身具有限制范围,并且fromElement或toElement位于范围的范围之外
SortedSet<E> headSet(E toElement)
返回的集合将抛出一个IllegalArgumentException ,试图在其范围之外插入一个元素。
相当于headSet(toElement, false)
。
headSet
在界面
SortedSet<E>
toElement
- 返回集合的高端点(独占)
ClassCastException
- 如果toElement与此设置的比较器不兼容(或如果该集合没有比较器,则toElement不实现Comparable
)。
如果toElement无法与当前集合中的元素进行比较,则实施可能但不是必须抛出此异常。
NullPointerException
- 如果
toElement为空,并且此集合不允许空元素
IllegalArgumentException
- 如果此设置本身具有限制范围,并且
toElement位于范围范围之外
SortedSet<E> tailSet(E fromElement)
返回的集合将抛出一个IllegalArgumentException尝试将元素插入其范围之外。
相当于tailSet(fromElement, true)
。
tailSet
在界面
SortedSet<E>
fromElement
- 返回集合的低端点(含)
ClassCastException
- 如果fromElement与此设置的比较器不兼容(或者如果该集合没有比较器,则fromElement不实现Comparable
)。
如果fromElement无法与当前集合中的元素进行比较,则实施可能但不是必须抛出此异常。
NullPointerException
- 如果
fromElement为空,并且此集合不允许空元素
IllegalArgumentException
- 如果此设置本身具有限制范围,并且
fromElement位于范围的边界之外