K
- 由此地图维护的键的类型
V
- 映射值的类型
public class ConcurrentSkipListMap<K,V> extends AbstractMap<K,V> implements ConcurrentNavigableMap<K,V>, Cloneable, Serializable
ConcurrentNavigableMap
实现。
该地图是根据排序natural ordering其密钥,或通过Comparator
在地图创建时提供,这取决于所使用的构造方法。
这个类实现的并发变种SkipLists提供预期平均log(n)的时间成本,为containsKey
, get
, put
和remove
操作及其变体。 插入,删除,更新和访问操作由多个线程并发执行安全地执行。
迭代器和拼接器是weakly consistent 。
升序关键排序视图及其迭代器比降序更快。
通过此类中的方法返回的所有Map.Entry
对,其视图表示生成时映射的快照。 他们不支持Entry.setValue
方法。 (不过要注意的是可以利用改变相关的地图映射put
, putIfAbsent
,或replace
,取决于你所需要究竟哪些效果。)
请注意,与大多数集合不同, size
方法不是一个恒定时间的操作。 由于这些映射的异步性质,确定当前元素数量需要遍历元素,因此如果在遍历期间修改此集合,则可能会报告不准确的结果。 此外,该批量操作putAll
, equals
, toArray
, containsValue
和clear
被原子方式执行, 不能保证。 例如,一个迭代用同时操作putAll
操作可能只查看一些所添加的元素。
此类及其视图和迭代器实现所有的可选方法Map
个Iterator
接口。 与大多数其他并发集合,这个类不允许使用null
键或值,因为有些空返回值不能从存在的元素的可靠地区分。
AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>
Constructor and Description |
---|
ConcurrentSkipListMap()
构造一个新的空映射,根据分类natural ordering的关键。
|
ConcurrentSkipListMap(Comparator<? super K> comparator)
构造一个新的空白地图,根据指定的比较器进行排序。
|
ConcurrentSkipListMap(Map<? extends K,? extends V> m)
构造一个包含与给定地图相同的映射的新地图,按照键的natural ordering进行排序。
|
ConcurrentSkipListMap(SortedMap<K,? extends V> m)
构造一个包含相同映射并使用与指定排序映射相同顺序的新映射。
|
Modifier and Type | Method and Description |
---|---|
Map.Entry<K,V> |
ceilingEntry(K key)
返回与大于或等于给定键的最小键相关联的键值映射,如果没有此项,则返回
null 。
|
K |
ceilingKey(K key)
返回大于或等于给定键的
null 键,如果没有此键,则返回
null 。
|
void |
clear()
从这张地图中删除所有的映射。
|
ConcurrentSkipListMap<K,V> |
clone()
返回此
ConcurrentSkipListMap 实例的浅层副本。
|
Comparator<? super K> |
comparator()
返回用于订购此地图中的键的比较器,或 null 如果此地图使用其键的natural ordering 。
|
V |
compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
尝试计算用于指定键和其当前映射的值的映射(或
null 如果没有当前映射)。
|
V |
computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction)
如果指定的键尚未与值相关联,则尝试使用给定的映射函数计算其值,并将其输入到此映射中,除非
null 。
|
V |
computeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
如果存在指定键的值,则尝试计算给出键的新映射及其当前映射值。
|
boolean |
containsKey(Object key)
如果此映射包含指定键的映射,则返回
true 。
|
boolean |
containsValue(Object value)
如果此映射将一个或多个键映射到指定的值,则返回
true 。
|
NavigableSet<K> |
descendingKeySet()
返回此地图中包含的键的相反顺序 NavigableSet 。
|
ConcurrentNavigableMap<K,V> |
descendingMap()
返回此映射中包含的映射的反向排序视图。
|
Set<Map.Entry<K,V>> |
entrySet()
返回此地图中包含的映射的 Set 视图。
|
boolean |
equals(Object o)
将指定的对象与此映射进行比较以获得相等性。
|
Map.Entry<K,V> |
firstEntry()
返回与该地图中的最小键相关联的键值映射,如果地图为空,则返回
null 。
|
K |
firstKey()
返回此地图中当前的第一个(最低)键。
|
Map.Entry<K,V> |
floorEntry(K key)
返回与小于或等于给定键的最大键相关联的键值映射,如果没有此键,则
null 。
|
K |
floorKey(K key)
返回小于或等于给定键的最大键,如果没有这样的键,则返回
null 。
|
void |
forEach(BiConsumer<? super K,? super V> action)
对此映射中的每个条目执行给定的操作,直到所有条目都被处理或操作引发异常。
|
V |
get(Object key)
返回到指定键所映射的值,或
null 如果此映射包含该键的映射。
|
V |
getOrDefault(Object key, V defaultValue)
返回指定键映射到的值或给定的defaultValue,如果该映射不包含该键的映射。
|
ConcurrentNavigableMap<K,V> |
headMap(K toKey)
返回此地图部分的视图,其密钥严格小于
toKey 。
|
ConcurrentNavigableMap<K,V> |
headMap(K toKey, boolean inclusive)
返回此地图部分的视图,其键值小于(或等于,如果
inclusive 为真)
toKey 。
|
Map.Entry<K,V> |
higherEntry(K key)
返回与最小密钥相关联的密钥值映射严格大于给定密钥,如果没有这样的密钥则
null 。
|
K |
higherKey(K key)
返回严格大于给定键的最小键,如果没有这样的键,则返回
null 。
|
boolean |
isEmpty()
如果此映射不包含键值映射,则返回
true 。
|
NavigableSet<K> |
keySet()
返回此地图中包含的键的 NavigableSet 视图。
|
Map.Entry<K,V> |
lastEntry()
返回与该地图中最大键相关联的键值映射,如果地图为空,则返回
null 。
|
K |
lastKey()
返回当前在此地图中的最后(最高)键。
|
Map.Entry<K,V> |
lowerEntry(K key)
返回与最大密钥相关联的密钥值映射严格小于给定密钥,如果没有这样的密钥则
null 。
|
K |
lowerKey(K key)
返回严格小于给定键的最大键,如果没有这样的键,则返回
null 。
|
V |
merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction)
如果指定的键尚未与值相关联,则将其与给定值相关联。
|
NavigableSet<K> |
navigableKeySet()
返回此地图中包含的键的 NavigableSet 视图。
|
Map.Entry<K,V> |
pollFirstEntry()
删除并返回与该地图中的最小键相关联的键值映射,如果地图为空,则返回
null 。
|
Map.Entry<K,V> |
pollLastEntry()
删除并返回与该地图中最大键相关联的键值映射,如果地图为空,则返回
null 。
|
V |
put(K key, V value)
将指定的值与此映射中的指定键相关联。
|
V |
putIfAbsent(K key, V value)
如果指定的键尚未与值相关联,请将其与给定值相关联。
|
V |
remove(Object key)
从该地图中删除指定键的映射(如果存在)。
|
boolean |
remove(Object key, Object value)
仅当当前映射到给定值时才删除密钥的条目。
|
V |
replace(K key, V value)
仅当当前映射到某个值时才替换该项的条目。
|
boolean |
replace(K key, V oldValue, V newValue)
仅当当前映射到给定值时才替换密钥的条目。
|
void |
replaceAll(BiFunction<? super K,? super V,? extends V> function)
将每个条目的值替换为对该条目调用给定函数的结果,直到所有条目都被处理或该函数抛出异常。
|
int |
size()
返回此地图中键值映射的数量。
|
ConcurrentNavigableMap<K,V> |
subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)
返回此地图部分的视图,其关键字范围为
fromKey 至
toKey 。
|
ConcurrentNavigableMap<K,V> |
subMap(K fromKey, K toKey)
返回此地图部分的视图,其关键字范围为
fromKey (含),不
toKey toKey。
|
ConcurrentNavigableMap<K,V> |
tailMap(K fromKey)
返回此地图部分的视图,其键大于或等于
fromKey 。
|
ConcurrentNavigableMap<K,V> |
tailMap(K fromKey, boolean inclusive)
返回此地图部分的视图,其键大于(或等于,如果
inclusive 为true)
fromKey 。
|
Collection<V> |
values()
返回此地图中包含的值的 Collection 视图。
|
hashCode, putAll, toString
public ConcurrentSkipListMap()
public ConcurrentSkipListMap(Comparator<? super K> comparator)
comparator
- 将用于订购此地图的比较器。
如果null
,则将使用natural ordering的按键。
public ConcurrentSkipListMap(Map<? extends K,? extends V> m)
m
- 其映射将放置在此映射中的映射
ClassCastException
- 如果m
中的键不是Comparable
,或者不相互比较
NullPointerException
- 如果指定的地图或其任何键或值为空
public ConcurrentSkipListMap(SortedMap<K,? extends V> m)
m
- 其映射将被放置在该映射中的排序映射,并且其比较器将用于对该映射进行排序
NullPointerException
- 如果指定的排序映射或其任何键或值为空
public ConcurrentSkipListMap<K,V> clone()
ConcurrentSkipListMap
实例的浅拷贝。
(键和值本身不被克隆。)
clone
在类别
AbstractMap<K,V>
Cloneable
public boolean containsKey(Object key)
true
。
containsKey
在界面
Map<K,V>
containsKey
在
AbstractMap<K,V>
key
- 要在此地图中存在的密钥要进行测试
true
如果此映射包含指定键的映射
ClassCastException
- 如果指定的键不能与当前在地图中的键进行比较
NullPointerException
- 如果指定的键为空
public V get(Object key)
null
如果此映射包含该键的映射。
更正式地,如果该映射包含从一个键k
到值v
,使得key
根据地图的排序等于k
,则该方法返回v
; 否则返回null
。 (最多可以有一个这样的映射。)
get
在界面
Map<K,V>
get
在类别
AbstractMap<K,V>
key
- 要返回其关联值的键
null
ClassCastException
- 如果指定的键不能与当前在地图中的键进行比较
NullPointerException
- 如果指定的键为空
public V getOrDefault(Object key, V defaultValue)
getOrDefault
在接口
ConcurrentMap<K,V>
getOrDefault
中的
Map<K,V>
key
- 关键
defaultValue
- 如果此映射不包含给定键的映射,则返回的值
NullPointerException
- 如果指定的键为空
public V put(K key, V value)
put
在界面
Map<K,V>
put
在类别
AbstractMap<K,V>
key
- 指定值与之关联的键
value
- 与指定键相关联的值
null
ClassCastException
- 如果指定的键不能与当前在地图中的键进行比较
NullPointerException
- 如果指定的键或值为空
public V remove(Object key)
remove
在接口
Map<K,V>
remove
在
AbstractMap<K,V>
key
- 应该删除哪个映射的键
null
ClassCastException
- 如果指定的键不能与当前在地图中的键进行比较
NullPointerException
- 如果指定的键为空
public boolean containsValue(Object value)
true
。
此操作需要在地图大小的时间线性。
此外,在执行此方法期间,地图可能会发生更改,在这种情况下,返回的结果可能不准确。
containsValue
在界面
Map<K,V>
containsValue
在类别
AbstractMap<K,V>
value
- 要在此地图中存在的值要进行测试
true
如果映射到value
存在;
false
否则
NullPointerException
- 如果指定的值为空
public int size()
Integer.MAX_VALUE
元素,则返回Integer.MAX_VALUE
。
请注意,与大多数集合不同,此方法不是一个常时操作。 由于这些映射的异步性质,确定当前数量的元素需要遍历它们才能对它们进行计数。 此外,在执行此方法期间,大小可能会发生更改,在这种情况下,返回的结果将不准确。 因此,这种方法在并发应用程序中通常不是很有用。
public boolean isEmpty()
true
。
public void clear()
public V computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction)
null
。
该函数不保证一旦原子仅当值不存在施加。
computeIfAbsent
中的
ConcurrentMap<K,V>
computeIfAbsent
在界面
Map<K,V>
key
- 指定值与之关联的键
mappingFunction
- 计算值的函数
NullPointerException
- 如果指定的键为空或mappingFunction为空
public V computeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
computeIfPresent
在接口
ConcurrentMap<K,V>
computeIfPresent
在界面
Map<K,V>
key
- 值可以与之相关联的键
remappingFunction
- 计算值的函数
NullPointerException
- 如果指定的键为null或remappingFunction为空
public V compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
null
)。
该功能不能保证原子应用一次。
compute
在接口
ConcurrentMap<K,V>
compute
在界面
Map<K,V>
key
- 指定值与之关联的键
remappingFunction
- 计算值的函数
NullPointerException
- 如果指定的键为null或remappingFunction为空
public V merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction)
null
。
该功能不能保证原子应用一次。
merge
在界面
ConcurrentMap<K,V>
merge
在接口
Map<K,V>
key
- 指定值与之关联的键
value
- 缺席时使用的值
remappingFunction
- 重新计算值(如果存在)的功能
NullPointerException
- 如果指定的键或值为空或remappingFunction为空
public NavigableSet<K> keySet()
NavigableSet
视图。
该集合的迭代器按升序返回密钥。 该集的spliterator另外报告Spliterator.CONCURRENT
, Spliterator.NONNULL
, Spliterator.SORTED
和Spliterator.ORDERED
,与被按键的升序的顺序相遇。 该spliterator的比较(见Spliterator.getComparator()
)是null
,如果地图的比较(见comparator()
)是null
。 否则,拼接器的比较器与地图的比较器相同或者施加相同的总排序。
该集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。 该组支持元件移除,即从映射中相应的映射,经由Iterator.remove
, Set.remove
, removeAll
, retainAll
和clear
操作。 它不支持add
或addAll
操作。
视图的迭代器和拼接器是weakly consistent 。
该方法等同于方法navigableKeySet
。
public NavigableSet<K> navigableKeySet()
ConcurrentNavigableMap
复制
NavigableSet
视图。
该集合的迭代器按升序返回密钥。
该集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。
该组支持元件移除,即从映射中相应的映射,经由Iterator.remove
, Set.remove
, removeAll
, retainAll
和clear
操作。
它不支持add
或addAll
操作。
视图的迭代器和拼接器是weakly consistent 。
navigableKeySet
在接口
ConcurrentNavigableMap<K,V>
navigableKeySet
在界面
NavigableMap<K,V>
public Collection<V> values()
Collection
视图。
集合的迭代器按照相应键的升序返回值。 藏品的spliterator另外报告Spliterator.CONCURRENT
, Spliterator.NONNULL
和Spliterator.ORDERED
,与正在提升相应的按键顺序的遭遇订单。
集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。 该collection支持元素移除,即从映射中相应的映射,经由Iterator.remove
, Collection.remove
, removeAll
, retainAll
和clear
操作。 它不支持add
或addAll
操作。
视图的迭代器和拼接器是weakly consistent 。
public Set<Map.Entry<K,V>> entrySet()
Set
视图。
集合的迭代器按升序键顺序返回条目。 该集的spliterator另外报告Spliterator.CONCURRENT
, Spliterator.NONNULL
, Spliterator.SORTED
和Spliterator.ORDERED
,与被按键的升序的顺序相遇。
该集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。 该组支持元件移除,即从映射中相应的映射,经由Iterator.remove
, Set.remove
, removeAll
, retainAll
和clear
操作。 它不支持add
或addAll
操作。
视图的迭代器和拼接器是weakly consistent 。
由iterator
或spliterator
的Map.Entry
元素不支持setValue
操作。
public ConcurrentNavigableMap<K,V> descendingMap()
ConcurrentNavigableMap
复制
返回的地图的订单等价于Collections.reverseOrder
(comparator())
。 表达式m.descendingMap().descendingMap()
返回m.descendingMap().descendingMap()
的视图, m
相当于m
。
descendingMap
中的
ConcurrentNavigableMap<K,V>
descendingMap
在界面
NavigableMap<K,V>
public NavigableSet<K> descendingKeySet()
ConcurrentNavigableMap
复制
NavigableSet
。
集合的迭代器按降序返回密钥。
该集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。
该组支持元件移除,即从映射中相应的映射,经由Iterator.remove
, Set.remove
, removeAll
, retainAll
和clear
操作。
它不支持add
或addAll
操作。
视图的迭代器和拼接器是weakly consistent 。
descendingKeySet
中的
ConcurrentNavigableMap<K,V>
descendingKeySet
在界面
NavigableMap<K,V>
public boolean equals(Object o)
true
。
更正式地,如果m1.entrySet().equals(m2.entrySet())
,两个地图m1
和m2
代表相同的映射。
如果在执行此方法期间同时修改了映射,则此操作可能会返回误导结果。
equals
在界面
Map<K,V>
equals
在类别
AbstractMap<K,V>
o
- 要与该地图相等的对象
true
如果指定的对象等于此映射
Object.hashCode()
, HashMap
public V putIfAbsent(K key, V value)
if (!map.containsKey(key)) return map.put(key, value); else return map.get(key);
除了动作以原子方式执行。
putIfAbsent
在接口
ConcurrentMap<K,V>
putIfAbsent
在界面
Map<K,V>
key
- 要与其关联的指定值的键
value
- 与指定键相关联的值
null
ClassCastException
- 如果指定的键不能与当前在地图中的键进行比较
NullPointerException
- 如果指定的键或值为空
public boolean remove(Object key, Object value)
if (map.containsKey(key) && Objects.equals(map.get(key), value)) { map.remove(key); return true; } else return false;
除了动作以原子方式执行。
remove
在界面
ConcurrentMap<K,V>
remove
在界面
Map<K,V>
key
- 与指定值相关联的键
value
- 预期与指定键相关联的值
true
如果该值被删除
ClassCastException
- 如果指定的键不能与当前在地图中的键进行比较
NullPointerException
- 如果指定的键为空
public boolean replace(K key, V oldValue, V newValue)
if (map.containsKey(key) && Objects.equals(map.get(key), oldValue)) { map.put(key, newValue); return true; } else return false;
除了动作以原子方式执行。
replace
在界面
ConcurrentMap<K,V>
replace
在界面
Map<K,V>
key
- 与指定值相关联的键
oldValue
- 预期与指定键相关联的值
newValue
- 与指定键相关联的值
true
如果值被替换
ClassCastException
- 如果指定的键不能与当前在地图中的键进行比较
NullPointerException
- 如果任何参数为空
public V replace(K key, V value)
if (map.containsKey(key)) { return map.put(key, value); } else return null;
除了动作以原子方式执行。
replace
在接口
ConcurrentMap<K,V>
replace
在接口
Map<K,V>
key
- 与指定值相关联的键
value
- 与指定键相关联的值
null
ClassCastException
- 如果指定的键不能与当前在地图中的键进行比较
NullPointerException
- 如果指定的键或值为空
public Comparator<? super K> comparator()
SortedMap
复制
null
如果此映射使用natural ordering它的键。
comparator
在界面
SortedMap<K,V>
null
public K firstKey()
SortedMap
复制
firstKey
在界面
SortedMap<K,V>
NoSuchElementException
- 如果这张地图是空的
public K lastKey()
SortedMap
复制
lastKey
在接口
SortedMap<K,V>
NoSuchElementException
- 如果这张地图是空的
public ConcurrentNavigableMap<K,V> subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)
NavigableMap
复制
fromKey
至toKey
。
如果fromKey
和toKey
相等,则返回的地图为空,除非fromInclusive
和toInclusive
都为真。
返回的地图由此地图支持,因此返回的地图中的更改将反映在该地图中,反之亦然。
返回的地图支持该地图支持的所有可选地图操作。
返回的地图将抛出一个IllegalArgumentException
,试图在其范围之外插入一个键,或构造一个其端点位于其范围之外的子地图。
subMap
在界面
ConcurrentNavigableMap<K,V>
subMap
在界面
NavigableMap<K,V>
fromKey
- 返回地图中的键的低端点
fromInclusive
-
true
如果
true
低端点包括在返回的视图中
toKey
- 返回地图中的键的高端点
toInclusive
-
true
如果高端点要包含在返回的视图中
fromKey
到
toKey
ClassCastException
- 如果fromKey
和toKey
无法使用此映射的比较器彼此进行比较(或者,如果映射没有比较器,则使用自然排序)。
如果fromKey
或toKey
无法与当前在地图中的键进行比较,则实施可能会但不是必须抛出此异常。
NullPointerException
- 如果
fromKey
或
toKey
为空
IllegalArgumentException
- 如果fromKey
大于toKey
;
或者如果该地图本身具有有限的范围,并且fromKey
或toKey
位于范围的范围之外
public ConcurrentNavigableMap<K,V> headMap(K toKey, boolean inclusive)
NavigableMap
复制
inclusive
为真) toKey
。
返回的地图由此地图支持,因此返回的地图中的更改将反映在该地图中,反之亦然。
返回的地图支持该地图支持的所有可选地图操作。
返回的地图会抛出一个IllegalArgumentException
,试图在其范围之外插入一个键。
headMap
在接口
ConcurrentNavigableMap<K,V>
headMap
在接口
NavigableMap<K,V>
toKey
- 返回地图中的键的高端点
inclusive
-
true
如果高端点要包括在返回的视图中
inclusive
为真)的地图部分视图
toKey
ClassCastException
- 如果toKey
与此地图的toKey
器不兼容(或者如果地图没有比较器,如果toKey
不实现Comparable
)。
如果toKey
无法与当前在地图中的键进行比较,则实施可能但不是必须抛出此异常。
NullPointerException
- 如果
toKey
为空
IllegalArgumentException
- 如果此地图本身具有限制范围,并且
toKey
位于范围界限之外
public ConcurrentNavigableMap<K,V> tailMap(K fromKey, boolean inclusive)
NavigableMap
复制
inclusive
为真) fromKey
。
返回的地图由此地图支持,因此返回的地图中的更改将反映在该地图中,反之亦然。
返回的地图支持该地图支持的所有可选地图操作。
返回的地图会抛出一个IllegalArgumentException
,试图在其范围之外插入一个键。
tailMap
在界面
ConcurrentNavigableMap<K,V>
tailMap
在接口
NavigableMap<K,V>
fromKey
- 返回地图中的键的低端点
inclusive
-
true
如果低端点要包含在返回的视图中
inclusive
为真)
fromKey
ClassCastException
- 如果fromKey
与此映射的fromKey
器不兼容(或者如果映射没有比较器,如果fromKey
不实现Comparable
)。
如果fromKey
无法与当前在地图中的键进行比较,则实施可能但不是必须抛出此异常。
NullPointerException
- 如果
fromKey
为空
IllegalArgumentException
- 如果此地图本身具有有限的范围,并且
fromKey
位于范围的范围之外
public ConcurrentNavigableMap<K,V> subMap(K fromKey, K toKey)
NavigableMap
复制
fromKey
(含),不toKey
toKey。
(如果fromKey
和toKey
相等,则返回的地图为空。)返回的地图由此地图支持,因此返回的地图中的更改将反映在该地图中,反之亦然。
返回的地图支持该地图支持的所有可选地图操作。
返回的地图会抛出一个IllegalArgumentException
,试图在其范围之外插入一个键。
相当于subMap(fromKey, true, toKey, false)
。
subMap
在接口
ConcurrentNavigableMap<K,V>
subMap
中的
NavigableMap<K,V>
subMap
在界面
SortedMap<K,V>
fromKey
- 返回地图中的键的低端点(含)
toKey
- 返回地图中的键的高端点(独占)
fromKey
(含)到
toKey
,独占
ClassCastException
- 如果fromKey
和toKey
无法使用该地图的比较器相互比较(或者,如果地图没有比较器,则使用自然排序)。
如果fromKey
或toKey
无法与当前在地图中的键进行比较,则实施可能但不是必须抛出此异常。
NullPointerException
- 如果
fromKey
或
toKey
为空
IllegalArgumentException
- 如果fromKey
大于toKey
;
或者如果该地图本身具有有限的范围,并且fromKey
或toKey
位于范围的范围之外
public ConcurrentNavigableMap<K,V> headMap(K toKey)
NavigableMap
复制
toKey
。
返回的地图由此地图支持,因此返回的地图中的更改将反映在该地图中,反之亦然。
返回的地图支持该地图支持的所有可选地图操作。
返回的地图会抛出一个IllegalArgumentException
,试图在其范围之外插入一个键。
相当于headMap(toKey, false)
。
headMap
在接口
ConcurrentNavigableMap<K,V>
headMap
在接口
NavigableMap<K,V>
headMap
在界面
SortedMap<K,V>
toKey
- 返回地图中的键的高端点(独占)
toKey
ClassCastException
- 如果toKey
与此地图的toKey
器不兼容(或者如果地图没有比较器,如果toKey
未实现Comparable
)。
如果toKey
无法与当前在地图中的键进行比较,则实施可能但不是必须抛出此异常。
NullPointerException
- 如果
toKey
为空
IllegalArgumentException
- 如果此地图本身具有有限的范围,并且
toKey
位于范围的范围之外
public ConcurrentNavigableMap<K,V> tailMap(K fromKey)
NavigableMap
复制
fromKey
。
返回的地图由此地图支持,因此返回的地图中的更改将反映在该地图中,反之亦然。
返回的地图支持该地图支持的所有可选地图操作。
返回的地图会抛出一个IllegalArgumentException
,试图在其范围之外插入一个键。
相当于tailMap(fromKey, true)
。
tailMap
在接口
ConcurrentNavigableMap<K,V>
tailMap
在界面
NavigableMap<K,V>
tailMap
在界面
SortedMap<K,V>
fromKey
- 返回地图中的键的低端点(含)
fromKey
ClassCastException
- 如果fromKey
与此地图的fromKey
器不兼容(或者如果地图没有比较器,如果fromKey
不实现Comparable
)。
如果fromKey
无法与当前在地图中的键进行比较,则实施可能但不是必须抛出此异常。
NullPointerException
- 如果
fromKey
为空
IllegalArgumentException
- 如果此地图本身具有限制范围,并且
fromKey
位于范围界限之外
public Map.Entry<K,V> lowerEntry(K key)
null
。
返回的条目不支持Entry.setValue
方法。
lowerEntry
在界面
NavigableMap<K,V>
key
- 关键
key
,或
null
如果没有这样的密钥
ClassCastException
- 如果指定的键不能与当前在地图中的键进行比较
NullPointerException
- 如果指定的键为空
public K lowerKey(K key)
NavigableMap
复制
null
。
lowerKey
在接口
NavigableMap<K,V>
key
- 关键
key
,否则
null
如果没有这样的键
ClassCastException
- 如果指定的键不能与当前在地图中的键进行比较
NullPointerException
- 如果指定的键为空
public Map.Entry<K,V> floorEntry(K key)
null
。
返回的条目不支持Entry.setValue
方法。
floorEntry
在界面
NavigableMap<K,V>
key
- 关键
key
,或
null
ClassCastException
- 如果指定的键不能与当前在地图中的键进行比较
NullPointerException
- 如果指定的键为空
public K floorKey(K key)
NavigableMap
复制
null
。
floorKey
在界面
NavigableMap<K,V>
key
- 关键
key
,或
null
如果没有这样的钥匙
ClassCastException
- 如果指定的键不能与当前在地图中的键进行比较
NullPointerException
- 如果指定的键为空
public Map.Entry<K,V> ceilingEntry(K key)
null
。
返回的条目不支持Entry.setValue
方法。
ceilingEntry
中的
NavigableMap<K,V>
key
- 关键
key
,如果没有这样的键,
null
ClassCastException
- 如果指定的键不能与当前在地图中的键进行比较
NullPointerException
- 如果指定的键为空
public K ceilingKey(K key)
NavigableMap
复制
null
键,如果没有这样的键,则返回
null
。
ceilingKey
中的
NavigableMap<K,V>
key
- 关键
key
,或
null
如果没有这样的键
ClassCastException
- 如果指定的键不能与当前在地图中的键进行比较
NullPointerException
- 如果指定的键为空
public Map.Entry<K,V> higherEntry(K key)
null
。
返回的条目不支持Entry.setValue
方法。
higherEntry
在界面
NavigableMap<K,V>
key
- 关键
key
,或
null
如果没有这样的键
ClassCastException
- 如果指定的键不能与当前在地图中的键进行比较
NullPointerException
- 如果指定的键为空
public K higherKey(K key)
NavigableMap
复制
null
。
higherKey
在界面
NavigableMap<K,V>
key
- 关键
key
,否则为
null
如果没有这样的键
ClassCastException
- 如果指定的键不能与当前在地图中的键进行比较
NullPointerException
- 如果指定的键为空
public Map.Entry<K,V> firstEntry()
null
。
返回的条目不支持Entry.setValue
方法。
firstEntry
在界面
NavigableMap<K,V>
null
public Map.Entry<K,V> lastEntry()
null
。
返回的条目不支持Entry.setValue
方法。
lastEntry
在界面
NavigableMap<K,V>
null
public Map.Entry<K,V> pollFirstEntry()
null
。
返回的条目不支持Entry.setValue
方法。
pollFirstEntry
在界面
NavigableMap<K,V>
null
空,
null
public Map.Entry<K,V> pollLastEntry()
null
。
返回的条目不支持Entry.setValue
方法。
pollLastEntry
在界面
NavigableMap<K,V>
null
空,
null
public void forEach(BiConsumer<? super K,? super V> action)
ConcurrentMap
复制
public void replaceAll(BiFunction<? super K,? super V,? extends V> function)
ConcurrentMap
复制
replaceAll
在接口
ConcurrentMap<K,V>
replaceAll
在界面
Map<K,V>
function
- 应用于每个条目的功能
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.