-
- 参数类型
-
K
- 由此地图维护的键的类型 -
V
- 映射值的类型
- All Known Subinterfaces:
-
ConcurrentNavigableMap<K,V>
- 所有已知实现类:
-
ConcurrentSkipListMap
,TreeMap
public interface NavigableMap<K,V> extends SortedMap<K,V>
ASortedMap
扩展了导航方法返回给定搜索目标的最接近的匹配。 方法lowerEntry(K)
,floorEntry(K)
,ceilingEntry(K)
和higherEntry(K)
返回Map.Entry
与键相关联的对象比比大于给定的密钥分别更少,小于或等于,大于或等于,大于,返回null
如果不存在这样的密钥。 同样,方法lowerKey(K)
,floorKey(K)
,ceilingKey(K)
,并higherKey(K)
回报只有相关联的密钥。 所有这些方法都设计用于定位,而不是遍历条目。A
NavigableMap
可以按升序或降序键顺序访问和遍历。descendingMap()
方法返回地图的视图,其中所有关系和方向方法的意义都反转。 上升操作和观点的表现可能比降序更快。 方法subMap(K, boolean, K, boolean)
,headMap(K, boolean)
和tailMap(K, boolean)
从等命名的不同SortedMap
在接受描述的下限和上限是否是包含性的抗排斥附加参数的方法。 任何NavigableMap
子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
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 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
。-
Methods inherited from interface java.util.Map
clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entry, equals, forEach, get, getOrDefault, hashCode, isEmpty, merge, of, of, of, of, of, of, of, of, of, of, of, ofEntries, 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
- 如果指定的键为空,并且此映射不允许空键
-
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
- 如果指定的键为空,并且此映射不允许空键
-
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
实质上等同于m
。- 结果
- 这张地图的倒序视图
-
navigableKeySet
NavigableSet<K> navigableKeySet()
返回此地图中包含的键的NavigableSet
视图。 该集合的迭代器按升序返回密钥。 该集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。 如果在集合中的迭代正在进行中修改映射(除了通过迭代器自己的remove
操作),迭代的结果是未定义的。 该组支持元件移除,即从映射中相应的映射,经由Iterator.remove
,Set.remove
,removeAll
,retainAll
,和clear
操作。 它不支持add
或addAll
操作。- 结果
- 该地图中的键的可导航集合视图
-
descendingKeySet
NavigableSet<K> descendingKeySet()
返回此映射中包含的键的相反顺序NavigableSet
。 集合的迭代器按降序返回密钥。 该集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。 如果在集合中的迭代正在进行中修改映射(除了通过迭代器自己的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
如果低端点要包含在返回的视图中 -
toKey
- 返回地图中的键的高端点 -
toInclusive
-true
如果高端点要包含在返回的视图中 - 结果
-
该地图的部分视图的视图范围从
fromKey
到toKey
- 异常
-
ClassCastException
- 如果fromKey
和toKey
无法使用此映射的比较器彼此进行比较(或者,如果映射没有比较器,则使用自然排序)。 如果fromKey
或toKey
无法与当前在地图中的键进行比较,则实施可能但不是必须抛出此异常。 -
NullPointerException
- 如果fromKey
或toKey
为空,并且此映射不允许空键 -
IllegalArgumentException
- 如果fromKey
大于toKey
; 或者如果该地图本身具有有限的范围,并且fromKey
或toKey
位于范围的范围之外
-
headMap
NavigableMap<K,V> headMap(K toKey, boolean inclusive)
返回此地图部分的视图,其键值小于(或等于,如果inclusive
为真)toKey
。 返回的地图由此地图支持,因此返回的地图中的更改将反映在该地图中,反之亦然。 返回的地图支持该地图支持的所有可选地图操作。返回的地图将抛出一个
IllegalArgumentException
,试图在其范围之外插入一个键。- 参数
-
toKey
- 返回地图中的键的高端点 -
inclusive
-true
如果高端点要包含在返回的视图中 - 结果
-
键的小于(或等于,如果
inclusive
为真)该地图的部分的视图toKey
- 异常
-
ClassCastException
- 如果toKey
与此映射的比较器不兼容(或者,如果映射没有比较器,如果toKey
不实现Comparable
)。 如果toKey
无法与当前在地图中的键进行比较,则实施可能但不是必须抛出此异常。 -
NullPointerException
- 如果toKey
为空,并且此映射不允许空键 -
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
为空,并且此映射不允许空键 -
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
为空,并且此映射不允许空键 -
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
为空,并且此映射不允许空键 -
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
为空,并且此映射不允许空键 -
IllegalArgumentException
- if this map itself has a restricted range, andfromKey
lies outside the bounds of the range
-
-