NavigableSet
public interface NavigableSet<E>
extends SortedSet<E>
使用导航方法扩展的 SortedSet,报告给定搜索目标的最接近匹配。方法lower、floor、ceiling和higher分别返回小于、小于或等于、大于或等于和大于给定元素的元素,如果没有这样的元素则返回null。可以按升序或降序访问和遍历 NavigableSet。 descendingSet 方法返回集合的视图,其中所有关系和方向方法的意义都被反转了。上升的操作和视图的性能可能比下降的快。此接口还定义了 pollFirst 和 pollLast 方法,它们返回和删除最低和最高元素,如果存在,则返回 null。方法 subSet、headSet 和 tailSet 与类似命名的 SortedSet 方法的不同之处在于接受描述下限和上限是包含还是排除的附加参数。任何 NavigableSet 的子集都必须实现 NavigableSet 接口。
在允许空元素的实现中,导航方法的返回值可能不明确。 然而,即使在这种情况下,结果也可以通过检查 contains(null) 来消除歧义。 为避免此类问题,鼓励此接口的实现不允许插入空元素。 (请注意,Comparable 元素的排序集本质上不允许为空。)
方法 subSet(E, E)、headSet(E) 和 tailSet(E) 被指定返回 SortedSet 以允许对 SortedSet 的现有实现进行兼容改造以实现 NavigableSet,但鼓励此接口的扩展和实现覆盖这些方法 返回 NavigableSet。
此接口是 Java 集合框架的成员。
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
E | ceiling(E e) | 返回此集合中大于或等于给定元素的最小元素,如果没有这样的元素,则返回 null。 |
IteratorE | descendingIterator() | 按降序返回此集合中元素的迭代器。 |
NavigableSetE | descendingSet() | 返回此集合中包含的元素的逆序视图。 |
E | floor(E e) | 返回此集合中小于或等于给定元素的最大元素,如果没有这样的元素,则返回 null。 |
SortedSetE | headSet(E toElement) | 返回此集合中元素严格小于 toElement 的部分的视图。 |
NavigableSetE | headSet(E toElement, boolean inclusive) | 返回此集合中元素小于(或等于,如果 inclusive 为true)toElement 的部分的视图。 |
E | higher(E e) | 返回此集合中严格大于给定元素的最小元素,如果没有这样的元素,则返回 null。 |
IteratorE | iterator() | 按升序返回此集合中元素的迭代器。 |
E | lower(E e) | 返回此集合中严格小于给定元素的最大元素,如果没有这样的元素,则返回 null。 |
E | pollFirst() | 检索并删除第一个(最低)元素,如果此集合为空,则返回 null。 |
E | pollLast() | 检索并删除最后一个(最高)元素,如果此集合为空,则返回 null。 |
NavigableSetE | subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive) | 返回此集合的一部分的视图,其元素范围从 fromElement 到 toElement。 |
SortedSetE | subSet(E fromElement, E toElement) | 返回此集合部分的视图,其元素范围从 fromElement(包括)到 toElement(不包括)。 |
SortedSetE | tailSet(E fromElement) | 返回此集合中元素大于或等于 fromElement 的部分的视图。 |
NavigableSetE | tailSet(E fromElement, boolean inclusive) | 返回此集合中元素大于(或等于,如果 inclusive 为true)fromElement 的部分的视图。 |
从接口 java.util.Collection 继承的方法 |
---|
parallelStream, removeIf, stream |
从接口 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
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果指定元素不能与集合中当前的元素进行比较 |
NullPointerException | 如果指定元素为空且此集合不允许空元素 |
floor
E floor(E e)
返回此集合中小于或等于给定元素的最大元素,如果没有这样的元素,则返回 null。
参数:
参数名称 | 参数描述 |
---|---|
e | 要匹配的值 |
返回:
小于或等于 e 的最大元素,如果没有这样的元素,则返回 null
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果指定元素不能与集合中当前的元素进行比较 |
NullPointerException | 如果指定元素为空且此集合不允许空元素 |
ceiling
E ceiling(E e)
返回此集合中大于或等于给定元素的最小元素,如果没有这样的元素,则返回 null。
参数:
参数名称 | 参数描述 |
---|---|
e | 要匹配的值 |
返回:
大于或等于 e 的最小元素,如果没有这样的元素,则返回 null
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果指定元素不能与集合中当前的元素进行比较 |
NullPointerException | 如果指定元素为空且此集合不允许空元素 |
higher
E higher(E e)
返回此集合中严格大于给定元素的最小元素,如果没有这样的元素,则返回 null。
参数:
参数名称 | 参数描述 |
---|---|
e | 要匹配的值 |
返回:
大于 e 的最小元素,如果没有这样的元素,则返回 null
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果指定元素不能与集合中当前的元素进行比较 |
NullPointerException | 如果指定元素为空且此集合不允许空元素 |
pollFirst
E pollFirst()
检索并删除第一个(最低)元素,如果此集合为空,则返回 null。
返回:
第一个元素,如果此集合为空,则返回 null
pollLast
E pollLast()
检索并删除最后一个(最高)元素,如果此集合为空,则返回 null。
返回:
最后一个元素,如果此集合为空,则返回 null
iterator
IteratorE iterator()
按升序返回此集合中元素的迭代器。
指定者:
接口 CollectionE 中的迭代器
指定者:
接口 IterableE 中的迭代器
指定者:
接口 SetE 中的迭代器
返回:
此集合中元素的迭代器,按升序排列
descendingSet
NavigableSetE descendingSet()
返回此集合中包含的元素的逆序视图。 降序集由该集支持,因此对集的更改会反映在降序集中,反之亦然。 如果在对任一集进行迭代时修改了任一集(通过迭代器自己的删除操作除外),则迭代的结果是未定义的。
返回的集合具有等价于 Collections#reverseOrder(Comparator)(comparator()) 的排序。 表达式 s.descendingSet().descendingSet() 返回一个与 s 基本等价的 s 视图。
返回:
该集合的逆序视图
descendingIterator
IteratorE descendingIterator()
按降序返回此集合中元素的迭代器。 等效于descendingSet().iterator()。
返回:
此集合中元素的迭代器,按降序排列
subSet
NavigableSetE subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
返回此集合的一部分的视图,其元素范围从 fromElement 到 toElement。 如果 fromElement 和 toElement 相等,则返回的集合为空,除非 fromInclusive 和 toInclusive 都为true。 返回的集合由该集合支持,因此返回集合中的更改会反映在该集合中,反之亦然。 返回的集合支持该集合支持的所有可选集合操作。
返回的集合将在尝试插入超出其范围的元素时抛出 IllegalArgumentException。
参数:
参数名称 | 参数描述 |
---|---|
fromElement | 返回集的低端点 |
fromInclusive | 如果要在返回的视图中包含低端点,则为 true |
toElement | 返回集的高端点 |
toInclusive | 如果要在返回的视图中包含高端端点,则为 true |
返回:
此集合的一部分的视图,其元素范围从 fromElement(包括)到 toElement(不包括)
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果 fromElement 和 toElement 不能使用该集合的比较器相互比较(或者,如果该集合没有比较器,则使用自然排序)。 如果 fromElement 或 toElement 无法与集合中当前的元素进行比较,则实现可以但不是必须抛出此异常。 |
NullPointerException | 如果 fromElement 或 toElement 为 null 并且此集合不允许 null 元素 |
IllegalArgumentException | 如果 fromElement 大于 toElement; 或者如果此集合本身具有受限范围,并且 fromElement 或 toElement 位于范围的范围之外。 |
headSet
NavigableSetE headSet(E toElement, boolean inclusive)
返回此集合中元素小于(或等于,如果 inclusive 为true)toElement 的部分的视图。 返回的集合由该集合支持,因此返回集合中的更改会反映在该集合中,反之亦然。 返回的集合支持该集合支持的所有可选集合操作。
返回的集合将在尝试插入超出其范围的元素时抛出 IllegalArgumentException。
参数:
参数名称 | 参数描述 |
---|---|
toElement | 返回集的高端点 |
inclusive | 如果要在返回的视图中包含高端端点,则为 true |
返回:
此集合的一部分的视图,其元素小于(或等于,如果 inclusive 为真)toElement
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果 toElement 与该集合的比较器不兼容(或者,如果该集合没有比较器,如果 toElement 没有实现 Comparable)。 如果 toElement 无法与集合中的当前元素进行比较,则实现可以但不是必须抛出此异常。 |
NullPointerException | 如果 toElement 为 null 并且此集合不允许 null 元素 |
IllegalArgumentException | 如果这个集合本身有一个限制范围,并且 toElement 位于范围的范围之外 |
tailSet
NavigableSetE tailSet(E fromElement, boolean inclusive)
返回此集合中元素大于(或等于,如果 inclusive 为true)fromElement 的部分的视图。 返回的集合由该集合支持,因此返回集合中的更改会反映在该集合中,反之亦然。 返回的集合支持该集合支持的所有可选集合操作。
返回的集合将在尝试插入超出其范围的元素时抛出 IllegalArgumentException。
参数:
参数名称 | 参数描述 |
---|---|
fromElement | 返回集的低端点 |
inclusive | 如果要在返回的视图中包含低端点,则为 true |
返回:
此集合中元素大于或等于 fromElement 的部分的视图
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果 fromElement 与这个集合的比较器不兼容(或者,如果集合没有比较器,如果 fromElement 没有实现 Comparable)。 如果无法将 fromElement 与当前集合中的元素进行比较,则实现可以但不是必须抛出此异常。 |
NullPointerException | 如果 fromElement 为 null 并且此集合不允许 null 元素 |
IllegalArgumentException | 如果此集合本身具有受限范围,并且 fromElement 位于范围的范围之外 |
subSet
SortedSetE subSet(E fromElement, E toElement)
返回此集合部分的视图,其元素范围从 fromElement(包括)到 toElement(不包括)。 (如果 fromElement 和 toElement 相等,则返回的集合为空。)返回的集合由该集合支持,因此返回集合中的更改会反映在该集合中,反之亦然。 返回的集合支持该集合支持的所有可选集合操作。
返回的集合将在尝试插入超出其范围的元素时抛出 IllegalArgumentException。
等效于 subSet(fromElement, true, toElement, false)。
指定者:
接口 SortedSetE 中的子集
参数:
参数名称 | 参数描述 |
---|---|
fromElement | 返回集的低端点(包括) |
toElement | 返回集的高端点(不包括) |
返回:
此集合的一部分的视图,其元素范围从 fromElement(包括)到 toElement(不包括)
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果 fromElement 和 toElement 不能使用该集合的比较器相互比较(或者,如果该集合没有比较器,则使用自然排序)。 如果 fromElement 或 toElement 无法与集合中当前的元素进行比较,则实现可以但不是必须抛出此异常。 |
NullPointerException | 如果 fromElement 或 toElement 为 null 并且此集合不允许 null 元素 |
IllegalArgumentException | 如果 fromElement 大于 toElement; 或者如果这个集合本身有一个受限制的范围,并且 fromElement 或 toElement 位于范围的范围之外 |
headSet
SortedSetE headSet(E toElement)
返回此集合中元素严格小于 toElement 的部分的视图。 返回的集合由该集合支持,因此返回集合中的更改会反映在该集合中,反之亦然。 返回的集合支持该集合支持的所有可选集合操作。
返回的集合将在尝试插入超出其范围的元素时抛出 IllegalArgumentException。
等效于 headSet(toElement, false)。
指定者:
接口 SortedSetE 中的 headSet
参数:
参数名称 | 参数描述 |
---|---|
toElement | 返回集的高端点(不包括) |
返回:
此集合中元素严格小于 toElement 的部分的视图
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果 toElement 与该集合的比较器不兼容(或者,如果该集合没有比较器,如果 toElement 没有实现 Comparable)。 如果 toElement 无法与集合中的当前元素进行比较,则实现可以但不是必须抛出此异常。 |
NullPointerException | 如果 toElement 为 null 并且此集合不允许 null 元素 |
IllegalArgumentException | 如果这个集合本身有一个限制范围,并且 toElement 位于范围的范围之外 |
tailSet
SortedSetE tailSet(E fromElement)
返回此集合中元素大于或等于 fromElement 的部分的视图。 返回的集合由该集合支持,因此返回集合中的更改会反映在该集合中,反之亦然。 返回的集合支持该集合支持的所有可选集合操作。
返回的集合将在尝试插入超出其范围的元素时抛出 IllegalArgumentException。
等价于tailSet(fromElement, true)。
指定者:
接口 SortedSetE 中的 tailSet
参数:
参数名称 | 参数描述 |
---|---|
fromElement | 返回集的低端点(包括) |
返回:
此集合中元素大于或等于 fromElement 的部分的视图
Throws:
Throw名称 | Throw描述 |
---|---|
ClassCastException | 如果 fromElement 与这个集合的比较器不兼容(或者,如果集合没有比较器,如果 fromElement 没有实现 Comparable)。 如果无法将 fromElement 与当前集合中的元素进行比较,则实现可以但不是必须抛出此异常。 |
NullPointerException | 如果 fromElement 为 null 并且此集合不允许 null 元素 |
IllegalArgumentException | 如果此集合本身具有受限范围,并且 fromElement 位于范围的范围之外 |