K
- 由此地图维护的键的类型
V
- 映射值的类型
public interface NavigableMap<K,V> extends SortedMap<K,V>
SortedMap
扩展了导航方法返回给定搜索目标的最接近的匹配。
方法lowerEntry
, floorEntry
, ceilingEntry
和higherEntry
返回Map.Entry
与键相关联的对象比比大于给定的密钥分别更少,小于或等于,大于或等于,大于,返回null
如果不存在这样的密钥。
同样,方法lowerKey
, floorKey
, ceilingKey
和higherKey
回报只有相关联的密钥。
所有这些方法都设计用于定位,而不是遍历条目。
A NavigableMap
可以按升序或降序键顺序访问和遍历。 descendingMap
方法返回地图的视图,其中所有关系和方向方向的意义都反转。 上升操作和观点的表现可能比降序更快。 方法subMap
, headMap
和tailMap
从等命名的不同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 。
Modifier and Type | Method and Description |
---|---|
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 toKey。
|
SortedMap<K,V> |
tailMap(K fromKey)
返回此地图部分的视图,其键大于或等于
fromKey 。
|
NavigableMap<K,V> |
tailMap(K fromKey, boolean inclusive)
返回此地图部分的视图,其键大于(或等于,如果
inclusive 为真)
fromKey 。
|
comparator, entrySet, firstKey, keySet, lastKey, values
clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, equals, forEach, get, getOrDefault, hashCode, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size
Map.Entry<K,V> lowerEntry(K key)
null
。
key
- 关键
key
,或
null
如果没有这样的密钥
ClassCastException
- 如果指定的键不能与当前在地图中的键进行比较
NullPointerException
- 如果指定的键为空,并且此映射不允许空键
K lowerKey(K key)
null
。
key
- 关键
key
,否则
null
如果没有这样的钥匙
ClassCastException
- 如果指定的键不能与当前在地图中的键进行比较
NullPointerException
- 如果指定的键为空,并且此映射不允许空键
Map.Entry<K,V> floorEntry(K key)
null
。
key
- 关键
key
,如果没有这样的密钥,
null
ClassCastException
- 如果指定的键不能与当前在地图中的键进行比较
NullPointerException
- 如果指定的键为空,并且此映射不允许空键
K floorKey(K key)
null
。
key
- 关键
key
,或
null
如果没有这样的钥匙
ClassCastException
- 如果指定的键不能与当前在地图中的键进行比较
NullPointerException
- 如果指定的键为空,并且此映射不允许空键
Map.Entry<K,V> ceilingEntry(K key)
null
。
key
- 关键
key
,如果没有这样的键,
null
ClassCastException
- 如果指定的键不能与当前在地图中的键进行比较
NullPointerException
- 如果指定的键为空,并且此映射不允许空键
K ceilingKey(K key)
null
键,如果没有此键,则返回
null
。
key
- 关键
key
,或
null
如果没有这样的键
ClassCastException
- 如果指定的键不能与当前在地图中的键进行比较
NullPointerException
- 如果指定的键为空,此映射不允许空键
Map.Entry<K,V> higherEntry(K key)
null
。
key
- 关键
key
,或
null
如果没有这样的键
ClassCastException
- 如果指定的键不能与当前在地图中的键进行比较
NullPointerException
- 如果指定的键为空,并且此映射不允许空键
K higherKey(K key)
null
。
key
- 关键
key
,或
null
如果没有这样的键
ClassCastException
- 如果指定的键不能与当前在地图中的键进行比较
NullPointerException
- 如果指定的键为空,并且此映射不允许空键
Map.Entry<K,V> firstEntry()
null
。
null
空,
null
Map.Entry<K,V> lastEntry()
null
。
null
Map.Entry<K,V> pollFirstEntry()
null
。
null
空,
null
Map.Entry<K,V> pollLastEntry()
null
。
null
空,
null
NavigableMap<K,V> descendingMap()
remove
之外),否则修改了任一映射,则迭代的结果是未定义的。
返回的地图的订单等价于Collections.reverseOrder
(comparator()) 。 表达式m.descendingMap().descendingMap()
返回m.descendingMap().descendingMap()
的视图, m
相当于m
。
NavigableSet<K> navigableKeySet()
NavigableSet
视图。
该集合的迭代器按升序返回密钥。
该集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。
如果在集合中的迭代正在进行中修改映射(除了通过迭代器自己的remove
操作),迭代的结果是未定义的。
该组支持元件移除,即从映射中相应的映射,经由Iterator.remove
, Set.remove
, removeAll
, retainAll
和clear
操作。
它不支持add
或addAll
操作。
NavigableSet<K> descendingKeySet()
NavigableSet
查看此地图中包含的键。
集合的迭代器按降序返回密钥。
该集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。
如果在集合中的迭代正在进行中修改映射(除了通过迭代器自己的remove
操作),迭代的结果是未定义的。
该组支持元件移除,即从映射中相应的映射,经由Iterator.remove
, Set.remove
, removeAll
, retainAll
和clear
操作。
它不支持add
或addAll
操作。
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
位于范围的范围之外
NavigableMap<K,V> headMap(K toKey, boolean inclusive)
inclusive
为真) toKey
。
返回的地图由此地图支持,因此返回的地图中的更改将反映在该地图中,反之亦然。
返回的地图支持该地图支持的所有可选地图操作。
返回的地图将扔一个IllegalArgumentException
尝试插入一个键超出其范围。
toKey
- 返回地图中的键的高端点
inclusive
-
true
如果高端点要包含在返回的视图中
inclusive
为真)的地图的部分视图
toKey
ClassCastException
- 如果toKey
与此映射的toKey
器不兼容(或者如果映射没有比较器,则toKey
不实现Comparable
)。
如果toKey
无法与当前在地图中的键进行比较,则实施可能但不是必须抛出此异常。
NullPointerException
- 如果
toKey
为空,并且此映射不允许空键
IllegalArgumentException
- 如果此地图本身具有有限的范围,而
toKey
位于范围的范围之外
NavigableMap<K,V> tailMap(K fromKey, boolean inclusive)
inclusive
为真) fromKey
。
返回的地图由此地图支持,因此返回的地图中的更改将反映在该地图中,反之亦然。
返回的地图支持该地图支持的所有可选地图操作。
返回的地图将抛出一个IllegalArgumentException
,试图在其范围之外插入一个键。
fromKey
- 返回地图中的键的低端点
inclusive
-
true
如果低端点要包括在返回的视图中
inclusive
为真)
fromKey
ClassCastException
- 如果fromKey
与此地图的fromKey
器不兼容(或者如果地图没有比较器,如果fromKey
不实现Comparable
)。
如果fromKey
无法与当前在地图中的键进行比较,则实施可能但不是必须抛出此异常。
NullPointerException
- 如果
fromKey
为空,并且该地图不允许空值
IllegalArgumentException
- 如果该地图本身有限制范围,而
fromKey
位于范围的范围之外
SortedMap<K,V> subMap(K fromKey, K toKey)
fromKey
(含)到toKey
,独占。
(如果fromKey
和toKey
相等,返回的地图为空。)返回的地图由该地图支持,因此返回的地图中的更改将反映在该地图中,反之亦然。
返回的地图支持该地图支持的所有可选地图操作。
返回的地图会抛出一个IllegalArgumentException
,试图在其范围之外插入一个键。
相当于subMap(fromKey, true, toKey, false)
。
subMap
在界面
SortedMap<K,V>
fromKey
- 返回地图中的键的低端点(含)
toKey
- 返回地图中的键的高端点(独占)
fromKey
(含)到
toKey
,独占
ClassCastException
- 如果fromKey
和toKey
无法使用该地图的比较器相互比较(或者,如果地图没有比较器,则使用自然排序)。
如果fromKey
或toKey
无法与当前在地图中的键进行比较,则实施可能但不是必须抛出此异常。
NullPointerException
- 如果
fromKey
或
toKey
为空,并且该地图不允许空键
IllegalArgumentException
- 如果fromKey
大于toKey
;
或者如果此地图本身具有限制范围,并且fromKey
或toKey
位于范围范围之外
SortedMap<K,V> headMap(K toKey)
toKey
。
返回的地图由此地图支持,因此返回的地图中的更改将反映在该地图中,反之亦然。
返回的地图支持该地图支持的所有可选地图操作。
返回的地图将抛出一个IllegalArgumentException
,试图在其范围之外插入一个键。
相当于headMap(toKey, false)
。
headMap
在界面
SortedMap<K,V>
toKey
- 返回地图中的键的高端点(独占)
toKey
ClassCastException
- 如果toKey
与此地图的toKey
器不兼容(或者如果地图没有比较器,如果toKey
不实现Comparable
)。
如果toKey
无法与当前在地图中的键进行比较,则实施可能但不是必须抛出此异常。
NullPointerException
- 如果
toKey
为空,并且此映射不允许空值
IllegalArgumentException
- 如果此地图本身具有限制范围,并且
toKey
位于范围界限之外
SortedMap<K,V> tailMap(K fromKey)
fromKey
。
返回的地图由此地图支持,因此返回的地图中的更改将反映在该地图中,反之亦然。
返回的地图支持该地图支持的所有可选地图操作。
返回的地图将扔一个IllegalArgumentException
尝试在其范围之外插入一个键。
相当于tailMap(fromKey, true)
。
tailMap
在界面
SortedMap<K,V>
fromKey
- 返回地图中的键的低端点(含)
fromKey
ClassCastException
- 如果fromKey
与此地图的fromKey
器不兼容(或者如果地图没有比较器,如果fromKey
不实现Comparable
)。
如果fromKey
无法与当前在地图中的键进行比较,则实施可能但不是必须抛出此异常。
NullPointerException
- 如果
fromKey
为空,并且此映射不允许空键
IllegalArgumentException
- if this map itself has a restricted range, and
fromKey
lies outside the bounds of the range