-
- 参数类型
-
E
- 由此集合维护的元素的类型
- All Superinterfaces:
-
Collection<E>
,Iterable<E>
,Set<E>
,SortedSet<E>
- 所有已知实现类:
-
ConcurrentSkipListSet
,TreeSet
public interface NavigableSet<E> extends SortedSet<E>
ASortedSet
扩展了导航方法报告给定搜索目标的最匹配。 方法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)
返回该集合的部分的视图,其元素的范围从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
。-
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream
-
Methods inherited from interface java.util.Set
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, of, of, of, of, of, of, of, of, of, of, of, of, remove, removeAll, retainAll, size, toArray, toArray
-
Methods inherited from interface 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
如果此集合为空
-
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)
返回此集合的部分的视图,其元素的范围从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
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
,独占。 (如果fromElement
和toElement
相等,则返回的集合为空。)返回的集合由此集合支持,因此返回集合中的更改将反映在此集合中,反之亦然。 返回的集合支持该集支持的所有可选集合操作。返回的集合将抛出一个
IllegalArgumentException
,试图在其范围之外插入一个元素。相当于
subSet(fromElement, true, toElement, false)
。- Specified by:
-
subSet
在接口SortedSet<E>
- 参数
-
fromElement
- 返回集合的低端点(含) -
toElement
- 返回集合的高端点(独占) - 结果
-
该集合的部分的视图,其元素的范围从
fromElement
(包括)到toElement
,独占 - 异常
-
ClassCastException
- 如果fromElement
和toElement
无法使用该集合的比较器彼此进行比较(或者如果该集合没有比较器,则使用自然排序)。 如果fromElement
或toElement
无法与当前集合中的元素进行比较,则实施可能但不是必须抛出此异常。 -
NullPointerException
- 如果fromElement
或toElement
为空,并且此集合不允许空元素 -
IllegalArgumentException
- 如果fromElement
大于toElement
; 或者如果此设置本身具有限制范围,并且fromElement
或toElement
位于范围的边界之外
-
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
位于范围的边界之外
-
-