- 类型参数:
K
- 此map维护的键类型V
- 映射值的类型
- 所有已知的子接口:
ConcurrentNavigableMap<K,
V>
- 所有已知的实现类:
ConcurrentSkipListMap
,TreeMap
SortedMap
扩展了导航方法,返回给定搜索目标的最接近匹配项。方法 lowerEntry(K)
、floorEntry(K)
、ceilingEntry(K)
和 higherEntry(K)
返回与键关联的 Map.Entry
对象,分别小于、小于或等于、大于或等于和大于给定键,如果没有这样的键,则返回 null
。同样,方法 lowerKey(K)
、floorKey(K)
、ceilingKey(K)
和 higherKey(K)
仅返回关联的键。所有这些方法都是为定位而不是遍历条目而设计的。
NavigableMap
可以按升序或降序键顺序访问和遍历。 descendingMap()
方法返回map的视图,其中所有关系和方向方法的意义都颠倒了。上升操作和视图的性能可能比下降操作和视图的性能更快。方法 subMap(K, boolean, K, boolean)
、 headMap(K, boolean)
和 tailMap(K, boolean)
与名称相似的 SortedMap
方法的不同之处在于它接受额外的参数来描述下限和上限是包含还是排除。任何 NavigableMap
的子图必须实现 NavigableMap
接口。
此接口还定义了方法 firstEntry()
、 pollFirstEntry()
、 lastEntry()
和 pollLastEntry()
返回和/或删除最小和最大映射(如果存在),否则返回 null
。
条目返回方法的实现预计会返回 Map.Entry
对,表示它们生成时的映射快照,因此通常 not 支持可选的 Entry.setValue
方法。但是请注意,可以使用方法 put
更改关联map中的映射。
方法 subMap(K, K)
、 headMap(K)
和 tailMap(K)
被指定返回 SortedMap
以允许对 SortedMap
的现有实现进行兼容改造以实现 NavigableMap
,但鼓励此接口的扩展和实现覆盖这些方法以返回 NavigableMap
。同样,可以覆盖 SortedMap.keySet()
以返回 NavigableSet
。
此接口是 Java 集合框架 的成员。
- 自从:
- 1.6
-
内部类总结
-
方法总结
修饰符和类型方法描述ceilingEntry
(K key) 返回与大于或等于给定键的最小键关联的键值映射,如果没有这样的键,则返回null
。ceilingKey
(K key) 返回大于或等于给定键的最小键,如果没有这样的键,则返回null
。返回此map中包含的键的逆序NavigableSet
视图。返回此map中包含的映射的逆序视图。返回与此map中最少键关联的键值映射,如果map为空,则返回null
。floorEntry
(K key) 返回与小于或等于给定键的最大键关联的键值映射,如果没有这样的键,则返回null
。返回小于或等于给定键的最大键,如果没有这样的键,则返回null
。返回此map部分的视图,其键严格小于toKey
。返回此map部分的视图,其键小于(或等于,如果inclusive
为真)toKey
。higherEntry
(K key) 返回与严格大于给定键的最小键关联的键值映射,如果没有这样的键,则返回null
。返回严格大于给定键的最小键,如果没有这样的键,则返回null
。返回与此map中最大键关联的键值映射,如果map为空,则返回null
。lowerEntry
(K key) 返回与严格小于给定键的最大键关联的键值映射,如果没有这样的键,则返回null
。返回严格小于给定键的最大键,如果没有这样的键,则返回null
。返回此map中包含的键的NavigableSet
视图。删除并返回与此map中最小键关联的键值映射,如果map为空,则返回null
。删除并返回与此map中最大键关联的键值映射,如果map为空,则返回null
。返回此map部分的视图,其键范围从fromKey
到toKey
。返回此map部分的视图,其键范围从fromKey
(含)到toKey
(不包含)。返回此map的键大于或等于fromKey
的部分的视图。返回此map部分的视图,其键大于(或等于,如果inclusive
为真)fromKey
。在接口 java.util.Map 中声明的方法
clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, equals, forEach, get, getOrDefault, hashCode, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size
-
方法详情
-
lowerEntry
返回与严格小于给定键的最大键关联的键值映射,如果没有这样的键,则返回null
。- 参数:
key
- 钥匙- 返回:
-
最大键小于
key
的条目,如果没有这样的键,则为null
- 抛出:
ClassCastException
- 如果无法将指定键与当前map中的键进行比较NullPointerException
- 如果指定键为空且此map不允许空键
-
lowerKey
返回严格小于给定键的最大键,如果没有这样的键,则返回null
。- 参数:
key
- 钥匙- 返回:
-
小于
key
的最大密钥,如果没有这样的密钥,则为null
- 抛出:
ClassCastException
- 如果无法将指定键与当前map中的键进行比较NullPointerException
- 如果指定键为空且此map不允许空键
-
floorEntry
返回与小于或等于给定键的最大键关联的键值映射,如果没有这样的键,则返回null
。- 参数:
key
- 钥匙- 返回:
-
最大键小于或等于
key
的条目,如果没有这样的键,则为null
- 抛出:
ClassCastException
- 如果无法将指定键与当前map中的键进行比较NullPointerException
- 如果指定键为空且此map不允许空键
-
floorKey
返回小于或等于给定键的最大键,如果没有这样的键,则返回null
。- 参数:
key
- 钥匙- 返回:
-
小于或等于
key
的最大键,如果没有这样的键,则为null
- 抛出:
ClassCastException
- 如果无法将指定键与当前map中的键进行比较NullPointerException
- 如果指定键为空且此map不允许空键
-
ceilingEntry
返回与大于或等于给定键的最小键关联的键值映射,如果没有这样的键,则返回null
。- 参数:
key
- 钥匙- 返回:
-
最小键大于或等于
key
的条目,如果没有这样的键,则为null
- 抛出:
ClassCastException
- 如果无法将指定键与当前map中的键进行比较NullPointerException
- 如果指定键为空且此map不允许空键
-
ceilingKey
返回大于或等于给定键的最小键,如果没有这样的键,则返回null
。- 参数:
key
- 钥匙- 返回:
-
大于或等于
key
的最小键,如果没有这样的键,则为null
- 抛出:
ClassCastException
- 如果无法将指定键与当前map中的键进行比较NullPointerException
- 如果指定键为空且此map不允许空键
-
higherEntry
返回与严格大于给定键的最小键关联的键值映射,如果没有这样的键,则返回null
。- 参数:
key
- 钥匙- 返回:
-
最小键大于
key
的条目,如果没有这样的键,则为null
- 抛出:
ClassCastException
- 如果无法将指定键与当前map中的键进行比较NullPointerException
- 如果指定键为空且此map不允许空键
-
higherKey
返回严格大于给定键的最小键,如果没有这样的键,则返回null
。- 参数:
key
- 钥匙- 返回:
-
大于
key
的最小键,或者null
如果没有这样的键 - 抛出:
ClassCastException
- 如果无法将指定键与当前map中的键进行比较NullPointerException
- 如果指定键为空且此map不允许空键
-
firstEntry
返回与此map中最少键关联的键值映射,如果map为空,则返回null
。- 返回:
-
具有最少键的条目,如果此map为空,则为
null
-
lastEntry
返回与此map中最大键关联的键值映射,如果map为空,则返回null
。- 返回:
-
具有最大键的条目,如果此map为空,则为
null
-
pollFirstEntry
删除并返回与此map中最小键关联的键值映射,如果map为空,则返回null
。- 返回:
-
此map的已删除第一个条目,如果此map为空,则为
null
-
pollLastEntry
删除并返回与此map中最大键关联的键值映射,如果map为空,则返回null
。- 返回:
-
此map的已删除最后一个条目,如果此map为空,则为
null
-
descendingMap
NavigableMap <K ,V > descendingMap()返回此map中包含的映射的逆序视图。降序图受此map支持,因此对map的更改会反映在降序图中,反之亦然。如果在对任一映射的集合视图进行迭代时修改了任一映射(通过迭代器自己的remove
操作除外),则迭代的结果是未定义的。返回的map的排序等同于
Collections.reverseOrder
(comparator())
。表达式m.descendingMap().descendingMap()
返回m
的视图,本质上等同于m
。- 返回:
- 这张map的倒序视图
-
descendingKeySet
NavigableSet <K > descendingKeySet()返回此map中包含的键的逆序NavigableSet
视图。该集合的迭代器按降序返回键。该集合由map支持,因此对map的更改会反映在集合中,反之亦然。如果在对集合进行迭代时修改map(除了通过迭代器自己的remove
操作),迭代的结果是不确定的。该集合支持元素删除,即通过Iterator.remove
、Set.remove
、removeAll
、retainAll
和clear
操作从map中删除相应的映射。它不支持add
或addAll
操作。- 返回:
- 此map中键的逆序可导航集视图
-
subMap
返回此map部分的视图,其键范围从fromKey
到toKey
。如果fromKey
和toKey
相等,则返回的映射为空,除非fromInclusive
和toInclusive
都为真。返回的map受此map支持,因此返回map中的更改会反映在此map中,反之亦然。返回的map支持此map支持的所有可选map操作。返回的映射将抛出
IllegalArgumentException
尝试插入其范围之外的键,或构建其端点位于其范围之外的子图。- 参数:
fromKey
- 返回map中键的低端点fromInclusive
-true
如果低端点要包含在返回的视图中toKey
- 返回map中键的高端点toInclusive
-true
如果高端点要包含在返回的视图中- 返回:
-
此map的部分视图,其键范围从
fromKey
到toKey
- 抛出:
ClassCastException
- 如果fromKey
和toKey
无法使用此map的比较器相互比较(或者,如果map没有比较器,则使用自然排序)。如果无法将fromKey
或toKey
与当前map中的键进行比较,实现可能会(但不是必须)抛出此异常。NullPointerException
- 如果fromKey
或toKey
为空且此map不允许空键IllegalArgumentException
- 如果fromKey
大于toKey
;或者如果这个map本身有一个限制范围,并且fromKey
或toKey
位于范围的边界之外
-
headMap
返回此map部分的视图,其键小于(或等于,如果inclusive
为真)toKey
。返回的map受此map支持,因此返回map中的更改会反映在此map中,反之亦然。返回的map支持此map支持的所有可选map操作。返回的映射将在尝试插入其范围之外的键时抛出
IllegalArgumentException
。- 参数:
toKey
- 返回map中键的高端点inclusive
-true
如果高端点要包含在返回的视图中- 返回:
-
此map的部分视图,其键小于(或等于,如果
inclusive
为真)toKey
- 抛出:
ClassCastException
- 如果toKey
与此map的比较器不兼容(或者,如果map没有比较器,如果toKey
未实现Comparable
)。如果无法将toKey
与当前map中的键进行比较,实现可能会(但不是必须)抛出此异常。NullPointerException
- 如果toKey
为空且此map不允许空键IllegalArgumentException
- 如果这个map本身有一个限制范围,并且toKey
位于范围的边界之外
-
tailMap
返回此map部分的视图,其键大于(或等于,如果inclusive
为真)fromKey
。返回的map受此map支持,因此返回map中的更改会反映在此map中,反之亦然。返回的map支持此map支持的所有可选map操作。返回的映射将在尝试插入其范围之外的键时抛出
IllegalArgumentException
。- 参数:
fromKey
- 返回map中键的低端点inclusive
-true
如果低端点要包含在返回的视图中- 返回:
-
此map的部分视图,其键大于(或等于,如果
inclusive
为真)fromKey
- 抛出:
ClassCastException
- 如果fromKey
与此map的比较器不兼容(或者,如果map没有比较器,如果fromKey
未实现Comparable
)。如果无法将fromKey
与当前map中的键进行比较,实现可能会(但不是必须)抛出此异常。NullPointerException
- 如果fromKey
为空且此map不允许空键IllegalArgumentException
- 如果这个map本身有一个限制范围,并且fromKey
位于范围的边界之外
-
subMap
返回此map部分的视图,其键范围从fromKey
(含)到toKey
(不包含)。 (如果fromKey
和toKey
相等,则返回的map为空。)返回的map受此map支持,因此返回map中的更改会反映在此map中,反之亦然。返回的map支持此map支持的所有可选map操作。返回的映射将在尝试插入其范围之外的键时抛出
IllegalArgumentException
。相当于
subMap(fromKey, true, toKey, false)
。- 指定者:
subMap
在接口SortedMap<K,
中V> - 参数:
fromKey
- 返回map中键的低端点(包括)toKey
- 返回map中键的高端点(不包括)- 返回:
-
此map的部分视图,其键范围从
fromKey
到toKey
不包括在内 - 抛出:
ClassCastException
- 如果fromKey
和toKey
无法使用此map的比较器相互比较(或者,如果map没有比较器,则使用自然排序)。如果无法将fromKey
或toKey
与当前map中的键进行比较,实现可能会(但不是必须)抛出此异常。NullPointerException
- 如果fromKey
或toKey
为空且此map不允许空键IllegalArgumentException
- 如果fromKey
大于toKey
;或者如果这个map本身有一个限制范围,并且fromKey
或toKey
位于范围的边界之外
-
headMap
返回此map部分的视图,其键严格小于toKey
。返回的map受此map支持,因此返回map中的更改会反映在此map中,反之亦然。返回的map支持此map支持的所有可选map操作。返回的映射将在尝试插入其范围之外的键时抛出
IllegalArgumentException
。相当于
headMap(toKey, false)
。- 指定者:
headMap
在接口SortedMap<K,
中V> - 参数:
toKey
- 返回map中键的高端点(不包括)- 返回:
-
此map的键严格小于
toKey
的部分的视图 - 抛出:
ClassCastException
- 如果toKey
与此map的比较器不兼容(或者,如果map没有比较器,如果toKey
未实现Comparable
)。如果无法将toKey
与当前map中的键进行比较,实现可能会(但不是必须)抛出此异常。NullPointerException
- 如果toKey
为空且此map不允许空键IllegalArgumentException
- 如果这个map本身有一个限制范围,并且toKey
位于范围的边界之外
-
tailMap
返回此map的键大于或等于fromKey
的部分的视图。返回的map受此map支持,因此返回map中的更改会反映在此map中,反之亦然。返回的map支持此map支持的所有可选map操作。返回的映射将在尝试插入其范围之外的键时抛出
IllegalArgumentException
。相当于
tailMap(fromKey, true)
。- 指定者:
tailMap
在接口SortedMap<K,
中V> - 参数:
fromKey
- 返回map中键的低端点(包括)- 返回:
-
此map的键大于或等于
fromKey
的部分的视图 - 抛出:
ClassCastException
- 如果fromKey
与此map的比较器不兼容(或者,如果map没有比较器,如果fromKey
未实现Comparable
)。如果无法将fromKey
与当前map中的键进行比较,实现可能会(但不是必须)抛出此异常。NullPointerException
- 如果fromKey
为空且此map不允许空键IllegalArgumentException
- 如果这个map本身有一个限制范围,并且fromKey
位于范围的边界之外
-