public class ConcurrentSkipListMap
extends AbstractMap<K, V>
implements ConcurrentNavigableMap<K, V>, Cloneable, Serializable
java.lang.Object | ||
↳ | java.util.AbstractMap<K, V> | |
↳ | java.util.concurrent.ConcurrentSkipListMap<K, V> |
可扩展的并发ConcurrentNavigableMap
实现。 该地图根据其键的Comparator
或地图创建时提供的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
键或值,因为有些空返回值不能从存在的元素的可靠地区分。
Public constructors |
|
---|---|
ConcurrentSkipListMap() 构造一个新的空地图,按照键的 natural ordering排序。 |
|
ConcurrentSkipListMap(Comparator<? super K> comparator) 构造一个新的空映射,按照指定的比较器进行排序。 |
|
ConcurrentSkipListMap(Map<? extends K, ? extends V> m) 构造一个包含与给定映射相同映射的新映射,并根据键的 natural ordering进行排序。 |
|
ConcurrentSkipListMap(SortedMap<K, ? extends V> m) 构造一个包含相同映射的新映射,并使用与指定的有序映射相同的顺序。 |
Public methods |
|
---|---|
Entry<K, V> |
ceilingEntry(K key) 返回与最小键大于或等于给定键相关联的键值映射,或者如果不存在这样的条目,则 |
K |
ceilingKey(K key) 返回大于或等于给定键的 |
void |
clear() 从此映射中移除所有映射。 |
ConcurrentSkipListMap<K, V> |
clone() 返回此 |
Comparator<? super K> |
comparator() 返回用于为了在这个映射中的键,或比较 |
V |
compute(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction) 尝试计算指定键和其当前映射值的映射(如果没有当前映射, |
V |
computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction) 如果指定的键尚未与值相关联,则尝试使用给定的映射函数计算其值,并将其输入到此映射中,除非 |
V |
computeIfPresent(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction) 如果指定键的值存在,则尝试计算给定键和其当前映射值的新映射。 |
boolean |
containsKey(Object key) 如果此映射包含指定键的映射,则返回 |
boolean |
containsValue(Object value) 如果此映射将一个或多个键映射到指定值,则返回 |
NavigableSet<K> |
descendingKeySet() 返回此映射中包含的键的逆序 |
ConcurrentNavigableMap<K, V> |
descendingMap() 返回此映射中包含的映射的逆序视图。 |
Set<Entry<K, V>> |
entrySet() 返回此映射中映射的映射的 |
boolean |
equals(Object o) 将指定的对象与此映射进行比较以获得相等性。 |
Entry<K, V> |
firstEntry() 返回与此地图中最小键值关联的键值映射,如果地图为空,则 |
K |
firstKey() 返回此地图中当前第一个(最低)的键。 |
Entry<K, V> |
floorEntry(K key) 返回与最大键小于或等于给定键相关联的键 - 值映射,如果没有这样的键,则 |
K |
floorKey(K key) 返回小于或等于给定键的最大键,或者如果不存在这样的键,则 |
void |
forEach(BiConsumer<? super K, ? super V> action) 对此映射中的每个条目执行给定操作,直到处理完所有条目或操作抛出异常为止。 |
V |
get(Object key) 返回指定键映射到的值,或者如果此映射不包含键映射,则返回 |
V |
getOrDefault(Object key, V defaultValue) 返回指定键映射到的值;如果此映射不包含键映射,则返回给定的defaultValue。 |
ConcurrentNavigableMap<K, V> |
headMap(K toKey) 返回此映射的关键字严格小于 相当于 |
ConcurrentNavigableMap<K, V> |
headMap(K toKey, boolean inclusive) 返回此映射的关键字小于(或等于,如果 |
Entry<K, V> |
higherEntry(K key) 返回与最小键相关的键 - 值映射,严格大于给定键,或者如果不存在这样的键,则 |
K |
higherKey(K key) 如果不存在这样的密钥,则返回严格大于给定密钥的最小密钥或 |
boolean |
isEmpty() 如果此映射不包含键 - 值映射,则返回 |
NavigableSet<K> |
keySet() 返回此映射中包含的键的 |
Entry<K, V> |
lastEntry() 返回与此地图中最大键关联的键值映射,如果地图为空,则 |
K |
lastKey() 返回此地图中当前最后一个(最高)的键。 |
Entry<K, V> |
lowerEntry(K key) 返回与最大键相关的键值映射,严格小于给定键,或者如果没有这样的键,则 |
K |
lowerKey(K key) 如果不存在这样的密钥,则返回严格小于给定密钥的最大密钥或 |
V |
merge(K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction) 如果指定的键尚未与值相关联,则将其与给定值相关联。 |
NavigableSet<K> |
navigableKeySet() 返回此映射中包含的键的 |
Entry<K, V> |
pollFirstEntry() 删除并返回与此地图中最小键值关联的键值映射,如果地图为空,则 |
Entry<K, V> |
pollLastEntry() 移除并返回与此地图中最大关键字关联的键值映射,如果地图为空,则 |
V |
put(K key, V value) 将指定的值与此映射中指定的键关联。 |
V |
putIfAbsent(K key, V value) 如果指定的键尚未与值相关联,则将其与给定值相关联。 |
boolean |
remove(Object key, Object value) 只有在当前映射到给定值的情况下才删除键的条目。 |
V |
remove(Object key) 如果存在,则从该映射中删除指定键的映射。 |
boolean |
replace(K key, V oldValue, V newValue) 仅当当前映射到给定值时才替换密钥的条目。 |
V |
replace(K key, V value) 仅当当前映射到某个值时才替换密钥的条目。 |
void |
replaceAll(BiFunction<? super K, ? super V, ? extends V> function) 用对该条目调用给定函数的结果替换每个条目的值,直到处理完所有条目或者该函数抛出异常。 |
int |
size() 返回此映射中键 - 值映射的数量。 |
ConcurrentNavigableMap<K, V> |
subMap(K fromKey, K toKey) 返回此映射部分的视图,其键的范围从 相当于 |
ConcurrentNavigableMap<K, V> |
subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) 返回此映射部分的视图,其键的范围从 |
ConcurrentNavigableMap<K, V> |
tailMap(K fromKey, boolean inclusive) 返回此映射关键字大于(或等于,如果 |
ConcurrentNavigableMap<K, V> |
tailMap(K fromKey) 返回此映射的关键字大于或等于 相当于 |
Collection<V> |
values() 返回此映射中包含的值的 |
Inherited methods |
|
---|---|
From class java.util.AbstractMap
|
|
From class java.lang.Object
|
|
From interface java.util.Map
|
|
From interface java.util.concurrent.ConcurrentNavigableMap
|
|
From interface java.util.concurrent.ConcurrentMap
|
|
From interface java.util.NavigableMap
|
|
From interface java.util.SortedMap
|
ConcurrentSkipListMap ()
构造一个新的空地图,按照键的 natural ordering排序。
ConcurrentSkipListMap (Comparator<? super K> comparator)
构造一个新的空映射,按照指定的比较器进行排序。
Parameters | |
---|---|
comparator |
Comparator : the comparator that will be used to order this map. If null , the natural ordering of the keys will be used. |
ConcurrentSkipListMap (Map<? extends K, ? extends V> m)
构造一个包含与给定映射相同映射的新映射,并根据键的 natural ordering进行排序。
Parameters | |
---|---|
m |
Map : the map whose mappings are to be placed in this map |
Throws | |
---|---|
ClassCastException |
if the keys in m are not Comparable , or are not mutually comparable |
NullPointerException |
if the specified map or any of its keys or values are null |
ConcurrentSkipListMap (SortedMap<K, ? extends V> m)
构造一个包含相同映射的新映射,并使用与指定的有序映射相同的顺序。
Parameters | |
---|---|
m |
SortedMap : the sorted map whose mappings are to be placed in this map, and whose comparator is to be used to sort this map |
Throws | |
---|---|
NullPointerException |
if the specified sorted map or any of its keys or values are null |
Entry<K, V> ceilingEntry (K key)
返回与最小键大于或等于给定键相关联的键 - 值映射,如果不存在这样的条目,则null
。 返回的条目不支持Entry.setValue
方法。
Parameters | |
---|---|
key |
K : the key |
Returns | |
---|---|
Entry<K, V> |
an entry with the least key greater than or equal to key , or null if there is no such key |
Throws | |
---|---|
ClassCastException |
|
NullPointerException |
if the specified key is null |
K ceilingKey (K key)
返回大于或等于给定键的 null
键,或者如果不存在这样的键,则 null
。
Parameters | |
---|---|
key |
K : the key |
Returns | |
---|---|
K |
the least key greater than or equal to key , or null if there is no such key |
Throws | |
---|---|
ClassCastException |
|
NullPointerException |
if the specified key is null |
ConcurrentSkipListMap<K, V> clone ()
返回此ConcurrentSkipListMap
实例的浅表副本。 (键和值本身不克隆。)
Returns | |
---|---|
ConcurrentSkipListMap<K, V> |
a shallow copy of this map |
Comparator<? super K> comparator ()
返回用于为了在这个映射中的键,或比较 null
如果此映射使用 natural ordering它的键。
Returns | |
---|---|
Comparator<? super K> |
the comparator used to order the keys in this map, or null if this map uses the natural ordering of its keys |
V compute (K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction)
尝试计算指定键和其当前映射值的映射(如果没有当前映射, null
)。 该功能不保证以原子方式应用一次。
Parameters | |
---|---|
key |
K : key with which the specified value is to be associated |
remappingFunction |
BiFunction : the function to compute a value |
Returns | |
---|---|
V |
the new value associated with the specified key, or null if none |
Throws | |
---|---|
NullPointerException |
if the specified key is null or the remappingFunction is null |
V computeIfAbsent (K key, Function<? super K, ? extends V> mappingFunction)
如果指定的键尚未与值相关联,则尝试使用给定的映射函数计算其值,并将其输入到此映射中,除非null
。 该功能不保证只有当该值不存在时才以原子方式应用一次。
Parameters | |
---|---|
key |
K : key with which the specified value is to be associated |
mappingFunction |
Function : the function to compute a value |
Returns | |
---|---|
V |
the current (existing or computed) value associated with the specified key, or null if the computed value is null |
Throws | |
---|---|
NullPointerException |
if the specified key is null or the mappingFunction is null |
V computeIfPresent (K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction)
如果指定键的值存在,则尝试计算给定键和其当前映射值的新映射。 该功能不保证以原子方式应用一次。
Parameters | |
---|---|
key |
K : key with which a value may be associated |
remappingFunction |
BiFunction : the function to compute a value |
Returns | |
---|---|
V |
the new value associated with the specified key, or null if none |
Throws | |
---|---|
NullPointerException |
if the specified key is null or the remappingFunction is null |
boolean containsKey (Object key)
如果此映射包含指定键的映射,则返回 true
。
Parameters | |
---|---|
key |
Object : key whose presence in this map is to be tested |
Returns | |
---|---|
boolean |
true if this map contains a mapping for the specified key |
Throws | |
---|---|
ClassCastException |
if the specified key cannot be compared with the keys currently in the map |
NullPointerException |
if the specified key is null |
boolean containsValue (Object value)
如果此映射将一个或多个键映射到指定值,则返回true
。 此操作需要地图大小的时间线性。 此外,在执行此方法时可能会更改地图,在这种情况下返回的结果可能不准确。
Parameters | |
---|---|
value |
Object : value whose presence in this map is to be tested |
Returns | |
---|---|
boolean |
true if a mapping to value exists; false otherwise |
Throws | |
---|---|
NullPointerException |
if the specified value is null |
NavigableSet<K> descendingKeySet ()
返回包含在此映射中的键的相反顺序NavigableSet
视图。 集合的迭代器按降序返回键。 该集合由地图支持,因此对地图的更改反映在集合中,反之亦然。 该组支持元件移除,即从映射中相应的映射,经由Iterator.remove
, Set.remove
, removeAll
, retainAll
,和clear
操作。 它不支持add
或addAll
操作。
视图的迭代器和分割器是 weakly consistent 。
Returns | |
---|---|
NavigableSet<K> |
a reverse order navigable set view of the keys in this map |
ConcurrentNavigableMap<K, V> descendingMap ()
返回此映射中包含的映射的逆序视图。 降序地图由此地图支持,因此对地图的更改反映在降序地图中,反之亦然。
返回的地图的订购等同于Collections.reverseOrder
(comparator())
。 表达m.descendingMap().descendingMap()
返回一个视图的m
实质上等同于m
。
Returns | |
---|---|
ConcurrentNavigableMap<K, V> |
a reverse order view of this map |
Set<Entry<K, V>> entrySet ()
返回此映射中映射的映射的 Set
视图。
该集的迭代器按照升序键顺序返回条目。 该集的spliterator另外报告CONCURRENT
, NONNULL
, SORTED
和ORDERED
,与被按键的升序的顺序相遇。
该集合由地图支持,因此对地图的更改反映在集合中,反之亦然。 该组支持元件移除,即从映射中相应的映射,经由Iterator.remove
, Set.remove
, removeAll
, retainAll
和clear
操作。 它不支持add
或addAll
操作。
视图的迭代器和分割器是 weakly consistent 。
iterator
或 spliterator
遍历的 Map.Entry
元素 不支持 setValue
操作。
Returns | |
---|---|
Set<Entry<K, V>> |
a set view of the mappings contained in this map, sorted in ascending key order |
boolean equals (Object o)
将指定的对象与此映射进行比较以获得相等性。 如果给定的对象也是一个映射,并且这两个映射表示相同的映射,则返回true
。 更正式地说,两个映射m1
和m2
表示如果m1.entrySet().equals(m2.entrySet())
相同的映射。 如果在执行此方法期间同时修改其中一个映射,此操作可能会返回误导结果。
Parameters | |
---|---|
o |
Object : object to be compared for equality with this map |
Returns | |
---|---|
boolean |
true if the specified object is equal to this map |
Entry<K, V> firstEntry ()
返回与此地图中最小键相关的键值映射,如果地图为空,则null
。 返回的条目不支持Entry.setValue
方法。
Returns | |
---|---|
Entry<K, V> |
an entry with the least key, or null if this map is empty |
K firstKey ()
返回此地图中当前第一个(最低)的键。
Returns | |
---|---|
K |
the first (lowest) key currently in this map |
Throws | |
---|---|
NoSuchElementException |
Entry<K, V> floorEntry (K key)
返回与最大键小于或等于给定键相关联的键值映射,或者如果不存在这样的键,则null
。 返回的条目不支持Entry.setValue
方法。
Parameters | |
---|---|
key |
K : the key |
Returns | |
---|---|
Entry<K, V> |
an entry with the greatest key less than or equal to key , or null if there is no such key |
Throws | |
---|---|
ClassCastException |
|
NullPointerException |
if the specified key is null |
K floorKey (K key)
返回小于或等于给定键的最大键,或者如果不存在这样的键,则 null
。
Parameters | |
---|---|
key |
K : the key |
Returns | |
---|---|
K |
the greatest key less than or equal to key , or null if there is no such key |
Throws | |
---|---|
ClassCastException |
|
NullPointerException |
if the specified key is null |
void forEach (BiConsumer<? super K, ? super V> action)
对此映射中的每个条目执行给定操作,直到处理完所有条目或操作抛出异常为止。 除非实现类另有规定,否则按照条目集迭代的顺序执行操作(如果指定了迭代顺序)。操作抛出的异常会中继给调用者。
Parameters | |
---|---|
action |
BiConsumer : The action to be performed for each entry |
V get (Object key)
返回指定键映射到的值,如果此映射不包含键映射,则返回 null
。
更正式地,如果此映射包含从密钥映射k
到值v
使得key
比较等于k
根据地图的排序,则此方法返回v
; 否则返回null
。 (最多可以有一个这样的映射。)
Parameters | |
---|---|
key |
Object : the key whose associated value is to be returned |
Returns | |
---|---|
V |
the value to which the specified key is mapped, or null if this map contains no mapping for the key |
Throws | |
---|---|
ClassCastException |
if the specified key cannot be compared with the keys currently in the map |
NullPointerException |
if the specified key is null |
V getOrDefault (Object key, V defaultValue)
返回指定键映射到的值;如果此映射不包含键映射,则返回给定的defaultValue。
Parameters | |
---|---|
key |
Object : the key |
defaultValue |
V : the value to return if this map contains no mapping for the given key |
Returns | |
---|---|
V |
the mapping for the key, if present; else the defaultValue |
Throws | |
---|---|
NullPointerException |
if the specified key is null |
ConcurrentNavigableMap<K, V> headMap (K toKey)
返回此映射的关键字严格小于toKey
的部分的视图。 返回的地图由此地图支持,因此返回地图中的更改会反映在此地图中,反之亦然。 返回的地图支持该地图支持的所有可选地图操作。
尝试在其范围外插入密钥时,返回的地图会抛出 IllegalArgumentException
。
相当于 headMap(toKey, false)
。
Parameters | |
---|---|
toKey |
K : high endpoint (exclusive) of the keys in the returned map |
Returns | |
---|---|
ConcurrentNavigableMap<K, V> |
a view of the portion of this map whose keys are strictly less than toKey |
Throws | |
---|---|
ClassCastException |
|
NullPointerException |
if toKey is null |
IllegalArgumentException |
ConcurrentNavigableMap<K, V> headMap (K toKey, boolean inclusive)
返回此映射关键字小于(或等于,如果inclusive
为true)的部分的toKey
。 返回的地图由此地图支持,因此返回地图中的更改会反映在此地图中,反之亦然。 返回的地图支持该地图支持的所有可选地图操作。
试图在其范围外插入密钥时,返回的地图会抛出 IllegalArgumentException
。
Parameters | |
---|---|
toKey |
K : high endpoint of the keys in the returned map |
inclusive |
boolean : true if the high endpoint is to be included in the returned view |
Returns | |
---|---|
ConcurrentNavigableMap<K, V> |
a view of the portion of this map whose keys are less than (or equal to, if inclusive is true) toKey |
Throws | |
---|---|
ClassCastException |
|
NullPointerException |
if toKey is null |
IllegalArgumentException |
Entry<K, V> higherEntry (K key)
返回与最小键相关的键值映射,严格大于给定键,或者如果没有这样的键,则null
。 返回的条目不支持Entry.setValue
方法。
Parameters | |
---|---|
key |
K : the key |
Returns | |
---|---|
Entry<K, V> |
an entry with the least key greater than key , or null if there is no such key |
Throws | |
---|---|
ClassCastException |
|
NullPointerException |
if the specified key is null |
K higherKey (K key)
如果不存在这样的密钥,则返回严格大于给定密钥的最小密钥或 null
。
Parameters | |
---|---|
key |
K : the key |
Returns | |
---|---|
K |
the least key greater than key , or null if there is no such key |
Throws | |
---|---|
ClassCastException |
|
NullPointerException |
if the specified key is null |
boolean isEmpty ()
如果此映射不包含键 - 值映射,则返回 true
。
Returns | |
---|---|
boolean |
true if this map contains no key-value mappings |
NavigableSet<K> keySet ()
返回此映射中包含的键的 NavigableSet
视图。
集合的迭代器按照升序返回键。 该集的spliterator另外报告CONCURRENT
, NONNULL
, SORTED
和ORDERED
,与被按键的升序的顺序相遇。 该spliterator的比较(见getComparator()
)是null
如果映射的比较(见comparator()
)是null
。 否则,分割器的比较器与地图比较器相同,或者施加相同的总排序。
该集合由地图支持,因此对地图的更改反映在集合中,反之亦然。 该组支持元件移除,即从映射中相应的映射,经由Iterator.remove
, Set.remove
, removeAll
, retainAll
,和clear
操作。 它不支持add
或addAll
操作。
视图的迭代器和分割器是 weakly consistent 。
该方法相当于方法 navigableKeySet
。
Returns | |
---|---|
NavigableSet<K> |
a navigable set view of the keys in this map |
Entry<K, V> lastEntry ()
返回与此地图中最大键相关的键值映射,如果地图为空,则null
。 返回的条目不支持Entry.setValue
方法。
Returns | |
---|---|
Entry<K, V> |
an entry with the greatest key, or null if this map is empty |
K lastKey ()
返回此地图中当前最后一个(最高)的键。
Returns | |
---|---|
K |
the last (highest) key currently in this map |
Throws | |
---|---|
NoSuchElementException |
Entry<K, V> lowerEntry (K key)
返回与最大键相关的键 - 值映射严格小于给定键,或者如果不存在这样的键,则null
。 返回的条目不支持Entry.setValue
方法。
Parameters | |
---|---|
key |
K : the key |
Returns | |
---|---|
Entry<K, V> |
an entry with the greatest key less than key , or null if there is no such key |
Throws | |
---|---|
ClassCastException |
|
NullPointerException |
if the specified key is null |
K lowerKey (K key)
如果没有这样的密钥,则返回严格小于给定密钥的最大密钥,或 null
。
Parameters | |
---|---|
key |
K : the key |
Returns | |
---|---|
K |
the greatest key less than key , or null if there is no such key |
Throws | |
---|---|
ClassCastException |
|
NullPointerException |
if the specified key is null |
V merge (K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction)
如果指定的键尚未与值相关联,则将其与给定值相关联。 否则,将该值替换为给定的重映射函数的结果,或者如果null
移除。 该功能不保证以原子方式应用一次。
Parameters | |
---|---|
key |
K : key with which the specified value is to be associated |
value |
V : the value to use if absent |
remappingFunction |
BiFunction : the function to recompute a value if present |
Returns | |
---|---|
V |
the new value associated with the specified key, or null if none |
Throws | |
---|---|
NullPointerException |
if the specified key or value is null or the remappingFunction is null |
NavigableSet<K> navigableKeySet ()
返回此映射中包含的键的NavigableSet
视图。 集合的迭代器按照升序返回键。 该集合由地图支持,因此对地图的更改反映在集合中,反之亦然。 该组支持元件移除,即从映射中相应的映射,经由Iterator.remove
, Set.remove
, removeAll
, retainAll
,和clear
操作。 它不支持add
或addAll
操作。
视图的迭代器和分割器是 weakly consistent 。
Returns | |
---|---|
NavigableSet<K> |
a navigable set view of the keys in this map |
Entry<K, V> pollFirstEntry ()
删除并返回与此地图中最小键值关联的键值映射,如果地图为空,则null
。 返回的条目不支持Entry.setValue
方法。
Returns | |
---|---|
Entry<K, V> |
the removed first entry of this map, or null if this map is empty |
Entry<K, V> pollLastEntry ()
移除并返回与此地图中最大关键字关联的键值映射,如果地图为空,则null
。 返回的条目不支持Entry.setValue
方法。
Returns | |
---|---|
Entry<K, V> |
the removed last entry of this map, or null if this map is empty |
V put (K key, V value)
将指定的值与此映射中指定的键关联。 如果地图先前包含密钥的映射,则旧值将被替换。
Parameters | |
---|---|
key |
K : key with which the specified value is to be associated |
value |
V : value to be associated with the specified key |
Returns | |
---|---|
V |
the previous value associated with the specified key, or null if there was no mapping for the key |
Throws | |
---|---|
ClassCastException |
if the specified key cannot be compared with the keys currently in the map |
NullPointerException |
if the specified key or value is null |
V putIfAbsent (K key, V value)
如果指定的键尚未与值相关联,则将其与给定值相关联。 这相当于这个map
:
if (!map.containsKey(key))
return map.put(key, value);
else
return map.get(key);
except that the action is performed atomically.
Parameters | |
---|---|
key |
K : key with which the specified value is to be associated |
value |
V : value to be associated with the specified key |
Returns | |
---|---|
V |
the previous value associated with the specified key, or null if there was no mapping for the key |
Throws | |
---|---|
ClassCastException |
if the specified key cannot be compared with the keys currently in the map |
NullPointerException |
if the specified key or value is null |
boolean remove (Object key, Object value)
只有在当前映射到给定值的情况下才删除键的条目。 这相当于这个map
:
if (map.containsKey(key)
&& Objects.equals(map.get(key), value)) {
map.remove(key);
return true;
} else {
return false;
}
except that the action is performed atomically.
Parameters | |
---|---|
key |
Object : key with which the specified value is associated |
value |
Object : value expected to be associated with the specified key |
Returns | |
---|---|
boolean |
true if the value was removed |
Throws | |
---|---|
ClassCastException |
if the specified key cannot be compared with the keys currently in the map |
NullPointerException |
if the specified key is null |
V remove (Object key)
如果存在,则从该映射中删除指定键的映射。
Parameters | |
---|---|
key |
Object : key for which mapping should be removed |
Returns | |
---|---|
V |
the previous value associated with the specified key, or null if there was no mapping for the key |
Throws | |
---|---|
ClassCastException |
if the specified key cannot be compared with the keys currently in the map |
NullPointerException |
if the specified key is null |
boolean replace (K key, V oldValue, V newValue)
仅当当前映射到给定值时才替换密钥的条目。 这相当于这个map
:
if (map.containsKey(key)
&& Objects.equals(map.get(key), oldValue)) {
map.put(key, newValue);
return true;
} else {
return false;
}
except that the action is performed atomically.
Parameters | |
---|---|
key |
K : key with which the specified value is associated |
oldValue |
V : value expected to be associated with the specified key |
newValue |
V : value to be associated with the specified key |
Returns | |
---|---|
boolean |
true if the value was replaced |
Throws | |
---|---|
ClassCastException |
if the specified key cannot be compared with the keys currently in the map |
NullPointerException |
if any of the arguments are null |
V replace (K key, V value)
仅当当前映射到某个值时才替换密钥的条目。 这相当于这个map
:
if (map.containsKey(key))
return map.put(key, value);
else
return null;
except that the action is performed atomically.
Parameters | |
---|---|
key |
K : key with which the specified value is associated |
value |
V : value to be associated with the specified key |
Returns | |
---|---|
V |
the previous value associated with the specified key, or null if there was no mapping for the key |
Throws | |
---|---|
ClassCastException |
if the specified key cannot be compared with the keys currently in the map |
NullPointerException |
if the specified key or value is null |
void replaceAll (BiFunction<? super K, ? super V, ? extends V> function)
用对该条目调用给定函数的结果替换每个条目的值,直到处理完所有条目或者该函数抛出异常。 函数抛出的异常会传递给调用者。
Parameters | |
---|---|
function |
BiFunction : the function to apply to each entry |
int size ()
返回此映射中键 - 值映射的数量。 如果此地图包含多个Integer.MAX_VALUE
元素,则返回Integer.MAX_VALUE
。
请注意,与大多数集合不同,此方法不是一个常量操作。 由于这些映射的异步性质,确定当前元素的数量需要遍历它们来对它们进行计数。 此外,在执行此方法期间可能会更改大小,在这种情况下返回的结果将不准确。 因此,这种方法在并发应用程序中通常不是很有用。
Returns | |
---|---|
int |
the number of elements in this map |
ConcurrentNavigableMap<K, V> subMap (K fromKey, K toKey)
返回此映射部分的视图,其键的范围从fromKey
(含)到toKey
(独占)。 (如果fromKey
和toKey
相等,则返回的地图为空。)返回的地图由此地图支持,因此返回的地图中的更改会反映在此地图中,反之亦然。 返回的地图支持该地图支持的所有可选地图操作。
尝试在其范围外插入密钥时,返回的地图会抛出 IllegalArgumentException
。
相当于 subMap(fromKey, true, toKey, false)
。
Parameters | |
---|---|
fromKey |
K : low endpoint (inclusive) of the keys in the returned map |
toKey |
K : high endpoint (exclusive) of the keys in the returned map |
Returns | |
---|---|
ConcurrentNavigableMap<K, V> |
a view of the portion of this map whose keys range from fromKey , inclusive, to toKey , exclusive |
Throws | |
---|---|
ClassCastException |
|
NullPointerException |
if fromKey or toKey is null |
IllegalArgumentException |
ConcurrentNavigableMap<K, V> subMap (K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)
返回此映射部分的视图,其键的范围从fromKey
到toKey
。 如果fromKey
和toKey
相等,则返回的映射是空的,除非fromInclusive
和toInclusive
均为真。 返回的地图由此地图支持,因此返回地图中的更改会反映在此地图中,反之亦然。 返回的地图支持该地图支持的所有可选地图操作。
返回的映射将尝试在其范围外插入一个键,或者构造其端点位于其范围之外的子映射 IllegalArgumentException
。
Parameters | |
---|---|
fromKey |
K : low endpoint of the keys in the returned map |
fromInclusive |
boolean : true if the low endpoint is to be included in the returned view |
toKey |
K : high endpoint of the keys in the returned map |
toInclusive |
boolean : true if the high endpoint is to be included in the returned view |
Returns | |
---|---|
ConcurrentNavigableMap<K, V> |
a view of the portion of this map whose keys range from fromKey to toKey |
Throws | |
---|---|
ClassCastException |
|
NullPointerException |
if fromKey or toKey is null |
IllegalArgumentException |
ConcurrentNavigableMap<K, V> tailMap (K fromKey, boolean inclusive)
返回此映射的关键字大于(或等于,如果inclusive
为true) fromKey
。 返回的地图由此地图支持,因此返回地图中的更改会反映在此地图中,反之亦然。 返回的地图支持该地图支持的所有可选地图操作。
试图在其范围外插入密钥时,返回的地图会抛出 IllegalArgumentException
。
Parameters | |
---|---|
fromKey |
K : low endpoint of the keys in the returned map |
inclusive |
boolean : true if the low endpoint is to be included in the returned view |
Returns | |
---|---|
ConcurrentNavigableMap<K, V> |
a view of the portion of this map whose keys are greater than (or equal to, if inclusive is true) fromKey |
Throws | |
---|---|
ClassCastException |
|
NullPointerException |
if fromKey is null |
IllegalArgumentException |
ConcurrentNavigableMap<K, V> tailMap (K fromKey)
返回此映射的关键字大于或等于fromKey
的部分的视图。 返回的地图由此地图支持,因此返回地图中的更改会反映在此地图中,反之亦然。 返回的地图支持该地图支持的所有可选地图操作。
尝试在其范围外插入密钥时,返回的地图会抛出 IllegalArgumentException
。
相当于 tailMap(fromKey, true)
。
Parameters | |
---|---|
fromKey |
K : low endpoint (inclusive) of the keys in the returned map |
Returns | |
---|---|
ConcurrentNavigableMap<K, V> |
a view of the portion of this map whose keys are greater than or equal to fromKey |
Throws | |
---|---|
ClassCastException |
|
NullPointerException |
if fromKey is null |
IllegalArgumentException |
Collection<V> values ()
返回此映射中包含的值的 Collection
视图。
集合的迭代器按相应键的升序返回值。 藏品的spliterator另外报告CONCURRENT
, NONNULL
和ORDERED
,与正在提升相应的按键顺序的遭遇订单。
该集合由地图支持,因此地图的更改会反映在集合中,反之亦然。 该collection支持元素移除,即从映射中相应的映射,经由Iterator.remove
, Collection.remove
, removeAll
, retainAll
和clear
操作。 它不支持add
或addAll
操作。
视图的迭代器和分割器是 weakly consistent 。
Returns | |
---|---|
Collection<V> |
a collection view of the values contained in this map |