-
- 参数类型
-
K
- 此映射维护的密钥类型 -
V
- 映射值的类型
- All Known Subinterfaces:
-
ConcurrentNavigableMap<K,V>
- 所有已知实现类:
-
ConcurrentSkipListMap
,TreeMap
public interface NavigableMap<K,V>extends SortedMap<K,V>
使用导航方法扩展的SortedMap
返回给定搜索目标的最接近匹配。 方法lowerEntry(K)
,floorEntry(K)
,ceilingEntry(K)
,和higherEntry(K)
返回Map.Entry
与键相关联的对象比比大于给定的密钥分别更少,小于或等于,大于或等于,大于,返回null
如果不存在这样的密钥。 同样,方法lowerKey(K)
,floorKey(K)
,ceilingKey(K)
和higherKey(K)
回报只有相关联的密钥。 所有这些方法都是为了定位而不是遍历条目而设计的。可以按升序或降序键访问和遍历
NavigableMap
。descendingMap()
方法返回地图视图,其中所有关系和方向方法的感知都被反转。 升序操作和视图的性能可能比降序操作的速度快。 方法subMap(K, boolean, K, boolean)
,headMap(K, boolean)
,和tailMap(K, boolean)
从等命名的不同SortedMap
在接受描述的下限和上限是否是包含性的抗排斥附加参数的方法。 任何NavigableMap
子图必须实现NavigableMap
接口。此接口还定义了方法
firstEntry()
,pollFirstEntry()
,lastEntry()
和pollLastEntry()
返回和/或删除至少和最大的映射关系,如果存在,否则返回null
。入口返回方法的实现预计将返回
Map.Entry
对,表示生成时映射的快照,因此通常不支持可选的Entry.setValue
方法。 但请注意,可以使用方法put
更改关联映射中的映射。方法
subMap(K, K)
,headMap(K)
和tailMap(K)
被指定为返回SortedMap
允许现有的实现SortedMap
能相容地改进来实现NavigableMap
,但鼓励扩展和该接口的实现重写这些方法返回NavigableMap
。 同样,SortedMap.keySet()
,可以覆盖到返回NavigableSet
。此接口是Java Collections Framework的成员。
- 从以下版本开始:
- 1.6
-
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 Map.Entry<K,V>
ceilingEntry(K key)
返回与大于或等于给定键的最小键关联的键 - 值映射,如果没有此键,则null
。K
ceilingKey(K key)
返回大于或等于给定键的null
键,如果没有这样的键,则null
。NavigableSet<K>
descendingKeySet()
返回此映射中包含的键的反向顺序NavigableSet
视图。NavigableMap<K,V>
descendingMap()
返回此映射中包含的映射的逆序视图。Map.Entry<K,V>
firstEntry()
返回与此映射中的最小键关联的键 - 值映射,如果映射为空,则null
。Map.Entry<K,V>
floorEntry(K key)
返回与小于或等于给定键的最大键关联的键 - 值映射,如果没有此键,则null
。K
floorKey(K key)
返回小于或等于给定键的最大键,如果没有这样的键,则null
。SortedMap<K,V>
headMap(K toKey)
返回此映射的部分视图,其键严格小于toKey
。NavigableMap<K,V>
headMap(K toKey, boolean inclusive)
返回此映射的部分视图,其键小于(或等于,如果inclusive
为真)toKey
。Map.Entry<K,V>
higherEntry(K key)
返回与严格大于给定键的最小键关联的键 - 值映射,如果没有此键,则null
。K
higherKey(K key)
返回严格大于给定键的最小键,如果没有这样的键,则返回null
。Map.Entry<K,V>
lastEntry()
返回与此映射中的最大键关联的键 - 值映射,如果映射为空,则null
。Map.Entry<K,V>
lowerEntry(K key)
返回与严格小于给定键的最大键关联的键 - 值映射,如果没有此键,则null
。K
lowerKey(K key)
返回严格小于给定键的最大键,如果没有这样键,则返回null
。NavigableSet<K>
navigableKeySet()
返回此映射中包含的键的NavigableSet
视图。Map.Entry<K,V>
pollFirstEntry()
删除并返回与此映射中的最小键关联的键 - 值映射,如果映射为空,则null
。Map.Entry<K,V>
pollLastEntry()
删除并返回与此映射中的最大键关联的键 - 值映射,如果映射为空,则null
。NavigableMap<K,V>
subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)
返回此映射部分的视图,其键的范围为fromKey
到toKey
。SortedMap<K,V>
subMap(K fromKey, K toKey)
返回此映射部分的视图,其键的范围从fromKey
(包括)到toKey
(不包括)。SortedMap<K,V>
tailMap(K fromKey)
返回此映射部分的视图,其键大于或等于fromKey
。NavigableMap<K,V>
tailMap(K fromKey, boolean inclusive)
返回此映射的部分视图,其键大于(或等于,如果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
Map.Entry<K,V> lowerEntry(K key)
返回与严格小于给定键的最大键相关联的键 - 值映射,如果没有此键,则null
。- 参数
-
key
- 关键 - 结果
- 最大密钥小于
key
的条目,如果没有这样的密钥null
- 异常
-
ClassCastException
- 如果指定的密钥无法与地图中当前的密钥进行比较 -
NullPointerException
- 如果指定的键为空且此映射不允许空键
-
lowerKey
K lowerKey(K key)
返回严格小于给定键的最大键,如果没有这样键,则返回null
。- 参数
-
key
- 关键 - 结果
- 最大的密钥小于
key
,如果没有这样的密钥null
- 异常
-
ClassCastException
- 如果指定的密钥无法与地图中当前的密钥进行比较 -
NullPointerException
- 如果指定的键为空且此映射不允许空键
-
floorEntry
Map.Entry<K,V> floorEntry(K key)
返回与小于或等于给定键的最大键关联的键 - 值映射,如果没有此键,则null
。- 参数
-
key
- 关键 - 结果
- 最大密钥小于或等于
key
,如果没有这样的密钥null
- 异常
-
ClassCastException
- 如果指定的密钥无法与地图中当前的密钥进行比较 -
NullPointerException
- 如果指定的键为null且此映射不允许空键
-
floorKey
K floorKey(K key)
返回小于或等于给定键的最大键,如果没有这样的键,则null
。- 参数
-
key
- 关键 - 结果
- 最大密钥小于或等于
key
,如果没有这样的密钥null
- 异常
-
ClassCastException
- 如果指定的键无法与地图中当前的键进行比较 -
NullPointerException
- 如果指定的键为空且此映射不允许空键
-
ceilingEntry
Map.Entry<K,V> ceilingEntry(K key)
返回与大于或等于给定键的最小键关联的键 - 值映射,如果没有此键,则null
。- 参数
-
key
- 关键 - 结果
- 最小密钥大于或等于
key
,如果没有这样的密钥null
- 异常
-
ClassCastException
- 如果指定的键无法与地图中当前的键进行比较 -
NullPointerException
- 如果指定的键为空且此映射不允许空键
-
ceilingKey
K ceilingKey(K key)
返回大于或等于给定键的null
键,如果没有这样的键,则null
。- 参数
-
key
- 关键 - 结果
- 最小密钥大于或等于
key
,如果没有这样的密钥null
- 异常
-
ClassCastException
- 如果指定的密钥无法与地图中当前的密钥进行比较 -
NullPointerException
- 如果指定的键为空且此映射不允许空键
-
higherEntry
Map.Entry<K,V> higherEntry(K key)
返回与严格大于给定键的最小键关联的键值映射,如果没有此键,则null
。- 参数
-
key
- 关键 - 结果
- 最小密钥大于
key
的条目,如果没有这样的密钥null
- 异常
-
ClassCastException
- 如果指定的密钥无法与地图中当前的密钥进行比较 -
NullPointerException
- 如果指定的键为null且此映射不允许空键
-
higherKey
K higherKey(K key)
返回严格大于给定键的最小键,如果没有这样的键,则返回null
。- 参数
-
key
- 关键 - 结果
- 如果没有这样的密钥,则最小密钥大于
key
或null
- 异常
-
ClassCastException
- 如果指定的密钥无法与地图中当前的密钥进行比较 -
NullPointerException
- 如果指定的键为空且此映射不允许空键
-
firstEntry
Map.Entry<K,V> firstEntry()
返回与此映射中的最小键关联的键 - 值映射,如果映射为空,则null
。- 结果
- 具有最小键的条目,或者如果此映射为空
null
-
lastEntry
Map.Entry<K,V> lastEntry()
返回与此映射中的最大键关联的键 - 值映射,如果映射为空,则null
。- 结果
- 具有最大键的条目,如果此映射为空,
null
-
pollFirstEntry
Map.Entry<K,V> pollFirstEntry()
删除并返回与此映射中的最小键关联的键 - 值映射,如果映射为空,则null
。- 结果
- 删除此地图的第一个条目,如果此地图为空,
null
-
pollLastEntry
Map.Entry<K,V> pollLastEntry()
删除并返回与此映射中的最大键关联的键 - 值映射,如果映射为空,则null
。- 结果
- 删除此地图的最后一个条目,如果此地图为空,
null
-
descendingMap
NavigableMap<K,V> descendingMap()
返回此映射中包含的映射的逆序视图。 降序地图由此地图支持,因此对地图的更改将反映在降序地图中,反之亦然。 如果在对任一映射的集合视图进行迭代时修改了任一映射(除非通过迭代器自己的remove
操作),则迭代的结果是未定义的。返回的地图的订购量等于
Collections.reverseOrder
(comparator())
。 表达式m.descendingMap().descendingMap()
返回m.descendingMap().descendingMap()
的视图,m
等效于m
。- 结果
- 此地图的逆序视图
-
navigableKeySet
NavigableSet<K> navigableKeySet()
返回此映射中包含的键的NavigableSet
视图。 set的迭代器按升序返回键。 该集由地图支持,因此对地图的更改将反映在集中,反之亦然。 如果在对集合进行迭代时修改了映射(除了通过迭代器自己的remove
操作),迭代的结果是未定义的。 该组支持元件移除,即从映射中相应的映射,经由Iterator.remove
,Set.remove
,removeAll
,retainAll
,和clear
操作。 它不支持add
或addAll
操作。- 结果
- 此地图中键的可导航设置视图
-
descendingKeySet
NavigableSet<K> descendingKeySet()
返回此映射中包含的键的反向顺序NavigableSet
视图。 set的迭代器按降序返回键。 该集由地图支持,因此对地图的更改将反映在集中,反之亦然。 如果在对集合进行迭代时修改了映射(除非通过迭代器自己的remove
操作),则迭代的结果是未定义的。 该组支持元件移除,即从映射中相应的映射,经由Iterator.remove
,Set.remove
,removeAll
,retainAll
,和clear
操作。 它不支持add
或addAll
操作。- 结果
- 此映射中键的反向可导航设置视图
-
subMap
NavigableMap<K,V> subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)
返回此映射部分的视图,其键的范围为fromKey
到toKey
。 如果fromKey
和toKey
相等,则返回的映射为空,除非fromInclusive
和toInclusive
都为真。 返回的地图由此地图支持,因此返回的地图中的更改将反映在此地图中,反之亦然。 返回的地图支持此地图支持的所有可选地图操作。返回的地图将尝试在其范围之外插入一个键,或者构造一个其端点位于其范围之外的子图,从而抛出
IllegalArgumentException
。- 参数
-
fromKey
- 返回映射中键的低端点 -
fromInclusive
-true
如果true
低端点包含在返回的视图中 -
toKey
- 返回映射中键的高端点 -
toInclusive
-true
如果true
高端点包含在返回的视图中 - 结果
- 此地图部分的视图,其键范围为
fromKey
至toKey
- 异常
-
ClassCastException
- 如果fromKey
和toKey
无法使用此地图的比较器相互比较(或者,如果地图没有比较器,则使用自然顺序)。 如果无法将fromKey
或toKey
与当前映射中的键进行比较,则实现可能(但不是必须)抛出此异常。 -
NullPointerException
- 如果fromKey
或toKey
为null且此映射不允许null键 -
IllegalArgumentException
- 如果fromKey
大于toKey
; 或者如果此地图本身具有受限范围,并且fromKey
或toKey
位于范围的范围之外
-
headMap
NavigableMap<K,V> headMap(K toKey, boolean inclusive)
返回此映射的部分视图,其键小于(或等于,如果inclusive
为真)toKey
。 返回的地图由此地图支持,因此返回的地图中的更改将反映在此地图中,反之亦然。 返回的地图支持此地图支持的所有可选地图操作。返回的地图将尝试在其范围之外插入一个键时抛出
IllegalArgumentException
。- 参数
-
toKey
- 返回映射中键的高端点 -
inclusive
-true
如果true
高端点包含在返回的视图中 - 结果
- 此地图部分的视图,其键小于(或等于,如果
inclusive
为真)toKey
- 异常
-
ClassCastException
- 如果toKey
与此映射的比较器不兼容(或者,如果映射没有比较器,则toKey
未实现Comparable
)。 如果无法将toKey
与当前映射中的键进行比较,则实现可能(但不是必须)抛出此异常。 -
NullPointerException
- 如果toKey
为null且此映射不允许空键 -
IllegalArgumentException
- 如果此地图本身具有受限范围,并且toKey
位于范围的范围之外
-
tailMap
NavigableMap<K,V> tailMap(K fromKey, boolean inclusive)
返回此映射的部分视图,其键大于(或等于,如果inclusive
为真)fromKey
。 返回的地图由此地图支持,因此返回的地图中的更改将反映在此地图中,反之亦然。 返回的地图支持此地图支持的所有可选地图操作。返回的地图将尝试在其范围之外插入一个键时抛出
IllegalArgumentException
。- 参数
-
fromKey
- 返回映射中键的低端点 -
inclusive
-true
如果true
低端点包含在返回的视图中 - 结果
- 此地图部分的视图,其键大于(或等于,如果
inclusive
为真)fromKey
- 异常
-
ClassCastException
- 如果fromKey
与此映射的比较器不兼容(或者,如果映射没有比较器,则fromKey
未实现Comparable
)。 如果无法将fromKey
与当前映射中的键进行比较,则实现可能(但不是必须)抛出此异常。 -
NullPointerException
- 如果fromKey
为null且此映射不允许空键 -
IllegalArgumentException
- 如果此地图本身具有受限范围,并且fromKey
位于范围的范围之外
-
subMap
SortedMap<K,V> subMap(K fromKey, K toKey)
返回此映射部分的视图,其键的范围从fromKey
(包括)到toKey
(不包括)。 (如果fromKey
和toKey
相等,则返回的地图为空。)返回的地图由此地图支持,因此返回的地图中的更改将反映在此地图中,反之亦然。 返回的地图支持此地图支持的所有可选地图操作。返回的地图将尝试在其范围之外插入一个键时抛出
IllegalArgumentException
。相当于
subMap(fromKey, true, toKey, false)
。- Specified by:
-
subMap
在界面SortedMap<K,V>
- 参数
-
fromKey
- 返回映射中键的低端点(包括) -
toKey
- 返回映射中键的高端点(独占) - 结果
- 此地图部分的视图,其键范围从
fromKey
(含)到toKey
,独家 - 异常
-
ClassCastException
- 如果fromKey
和toKey
无法使用此映射的比较器相互比较(或者,如果映射没有比较器,则使用自然顺序)。 如果无法将fromKey
或toKey
与当前映射中的键进行比较,则实现可能(但不是必须)抛出此异常。 -
NullPointerException
- 如果fromKey
或toKey
为空且此映射不允许null键 -
IllegalArgumentException
- 如果fromKey
大于toKey
; 或者如果此地图本身具有受限范围,并且fromKey
或toKey
位于范围的范围之外
-
headMap
SortedMap<K,V> headMap(K toKey)
返回此映射的部分视图,其键严格小于toKey
。 返回的地图由此地图支持,因此返回的地图中的更改将反映在此地图中,反之亦然。 返回的地图支持此地图支持的所有可选地图操作。返回的地图将尝试在其范围之外插入一个键时抛出
IllegalArgumentException
。相当于
headMap(toKey, false)
。- Specified by:
-
headMap
在界面SortedMap<K,V>
- 参数
-
toKey
- 返回映射中键的高端点(独占) - 结果
- 此地图部分的视图,其键严格小于
toKey
- 异常
-
ClassCastException
- 如果toKey
与此映射的比较器不兼容(或者,如果映射没有比较器,则toKey
未实现Comparable
)。 如果无法将toKey
与当前映射中的键进行比较,则实现可能(但不是必须)抛出此异常。 -
NullPointerException
- 如果toKey
为null且此映射不允许空键 -
IllegalArgumentException
- 如果此地图本身具有受限范围,并且toKey
位于范围的范围之外
-
tailMap
SortedMap<K,V> tailMap(K fromKey)
返回此映射部分的视图,其键大于或等于fromKey
。 返回的地图由此地图支持,因此返回的地图中的更改将反映在此地图中,反之亦然。 返回的地图支持此地图支持的所有可选地图操作。返回的地图将尝试在其范围之外插入密钥时抛出
IllegalArgumentException
。相当于
tailMap(fromKey, true)
。- Specified by:
-
tailMap
在界面SortedMap<K,V>
- 参数
-
fromKey
- 返回映射中键的低端点(包括) - 结果
- 此映射的部分视图,其键大于或等于
fromKey
- 异常
-
ClassCastException
- 如果fromKey
与此映射的比较器不兼容(或者,如果映射没有比较器,则fromKey
未实现Comparable
)。 如果无法将fromKey
与当前映射中的键进行比较,则实现可能(但不是必须)抛出此异常。 -
NullPointerException
- 如果fromKey
为null且此映射不允许空键 -
IllegalArgumentException
- if this map itself has a restricted range, andfromKey
lies outside the bounds of the range
-
-