Most visited

Recently visited

Added in API level 9

ConcurrentSkipListMap

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)的时间成本,为containsKeygetputremove操作及其变体。 插入,删除,更新和访问操作安全地由多个线程同时执行。

迭代器和分割器是 weakly consistent

递增键序列视图及其迭代器比递减键更快。

所有由该类及其视图中的方法返回的Map.Entry对表示在生成时映射的快照。 他们支持Entry.setValue方法。 (不过要注意的是可以利用改变相关的地图映射putputIfAbsent ,或replace ,取决于你到底需要哪些效果。)

请注意,与大多数收藏不同, size方法不是一个常量操作。 由于这些映射的异步性质,确定当前元素数量需要遍历元素,因此如果在遍历期间修改此集合,则可能会报告不准确的结果。 此外,该批量操作putAllequalstoArraycontainsValueclear待原子方式执行, 不能保证。 例如,与putAll操作同时运行的迭代器可能仅查看一些添加的元素。

此类及其视图和迭代器实现MapIterator接口的所有可选方法。 与大多数其他并发集合,这个类不允许使用null键或值,因为有些空返回值不能从存在的元素的可靠地区分。

Summary

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)

返回与最小键大于或等于给定键相关联的键值映射,或者如果不存在这样的条目,则 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<Entry<K, V>> entrySet()

返回此映射中映射的映射的 Set视图。

boolean equals(Object o)

将指定的对象与此映射进行比较以获得相等性。

Entry<K, V> firstEntry()

返回与此地图中最小键值关联的键值映射,如果地图为空,则 null

K firstKey()

返回此地图中当前第一个(最低)的键。

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的部分的视图。

相当于 headMap(toKey, false)

ConcurrentNavigableMap<K, V> headMap(K toKey, boolean inclusive)

返回此映射的关键字小于(或等于,如果 inclusive为true)的部分的 toKey

Entry<K, V> higherEntry(K key)

返回与最小键相关的键 - 值映射,严格大于给定键,或者如果不存在这样的键,则 null

K higherKey(K key)

如果不存在这样的密钥,则返回严格大于给定密钥的最小密钥或 null

boolean isEmpty()

如果此映射不包含键 - 值映射,则返回 true

NavigableSet<K> keySet()

返回此映射中包含的键的 NavigableSet视图。

Entry<K, V> lastEntry()

返回与此地图中最大键关联的键值映射,如果地图为空,则 null

K lastKey()

返回此地图中当前最后一个(最高)的键。

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视图。

Entry<K, V> pollFirstEntry()

删除并返回与此地图中最小键值关联的键值映射,如果地图为空,则 null

Entry<K, V> pollLastEntry()

移除并返回与此地图中最大关键字关联的键值映射,如果地图为空,则 null

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)

返回此映射部分的视图,其键的范围从 fromKey (含)至 toKey (独占)。

相当于 subMap(fromKey, true, toKey, false)

ConcurrentNavigableMap<K, V> subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)

返回此映射部分的视图,其键的范围从 fromKeytoKey

ConcurrentNavigableMap<K, V> tailMap(K fromKey, boolean inclusive)

返回此映射关键字大于(或等于,如果 inclusive为true)的部分的 fromKey

ConcurrentNavigableMap<K, V> tailMap(K fromKey)

返回此映射的关键字大于或等于 fromKey的部分的视图。

相当于 tailMap(fromKey, true)

Collection<V> values()

返回此映射中包含的值的 Collection视图。

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

Public constructors

ConcurrentSkipListMap

Added in API level 9
ConcurrentSkipListMap ()

构造一个新的空地图,按照键的 natural ordering排序。

ConcurrentSkipListMap

Added in API level 9
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

Added in API level 9
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

Added in API level 9
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

Public methods

ceilingEntry

Added in API level 9
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

ceilingKey

Added in API level 9
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

clear

Added in API level 9
void clear ()

从此映射中移除所有映射。

clone

Added in API level 9
ConcurrentSkipListMap<K, V> clone ()

返回此ConcurrentSkipListMap实例的浅表副本。 (键和值本身不克隆。)

Returns
ConcurrentSkipListMap<K, V> a shallow copy of this map

comparator

Added in API level 9
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

compute

Added in API level 24
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

computeIfAbsent

Added in API level 24
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

computeIfPresent

Added in API level 24
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

containsKey

Added in API level 9
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

containsValue

Added in API level 9
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

descendingKeySet

Added in API level 9
NavigableSet<K> descendingKeySet ()

返回包含在此映射中的键的相反顺序NavigableSet视图。 集合的迭代器按降序返回键。 该集合由地图支持,因此对地图的更改反映在集合中,反之亦然。 该组支持元件移除,即从映射中相应的映射,经由Iterator.removeSet.removeremoveAllretainAll ,和clear操作。 它不支持addaddAll操作。

视图的迭代器和分割器是 weakly consistent

Returns
NavigableSet<K> a reverse order navigable set view of the keys in this map

descendingMap

Added in API level 9
ConcurrentNavigableMap<K, V> descendingMap ()

返回此映射中包含的映射的逆序视图。 降序地图由此地图支持,因此对地图的更改反映在降序地图中,反之亦然。

返回的地图的订购等同于Collections.reverseOrder (comparator()) 表达m.descendingMap().descendingMap()返回一个视图的m实质上等同于m

Returns
ConcurrentNavigableMap<K, V> a reverse order view of this map

entrySet

Added in API level 9
Set<Entry<K, V>> entrySet ()

返回此映射中映射的映射的 Set视图。

该集的迭代器按照升序键顺序返回条目。 该集的spliterator另外报告CONCURRENTNONNULLSORTEDORDERED ,与被按键的升序的顺序相遇。

该集合由地图支持,因此对地图的更改反映在集合中,反之亦然。 该组支持元件移除,即从映射中相应的映射,经由Iterator.removeSet.removeremoveAllretainAllclear操作。 它不支持addaddAll操作。

视图的迭代器和分割器是 weakly consistent

iteratorspliterator遍历的 Map.Entry元素 支持 setValue操作。

Returns
Set<Entry<K, V>> a set view of the mappings contained in this map, sorted in ascending key order

equals

Added in API level 9
boolean equals (Object o)

将指定的对象与此映射进行比较以获得相等性。 如果给定的对象也是一个映射,并且这两个映射表示相同的映射,则返回true 更正式地说,两个映射m1m2表示如果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

firstEntry

Added in API level 9
Entry<K, V> firstEntry ()

返回与此地图中最小键相关的键值映射,如果地图为空,则null 返回的条目支持Entry.setValue方法。

Returns
Entry<K, V> an entry with the least key, or null if this map is empty

firstKey

Added in API level 9
K firstKey ()

返回此地图中当前第一个(最低)的键。

Returns
K the first (lowest) key currently in this map
Throws
NoSuchElementException

floorEntry

Added in API level 9
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

floorKey

Added in API level 9
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

forEach

Added in API level 24
void forEach (BiConsumer<? super K, ? super V> action)

对此映射中的每个条目执行给定操作,直到处理完所有条目或操作抛出异常为止。 除非实现类另有规定,否则按照条目集迭代的顺序执行操作(如果指定了迭代顺序)。操作抛出的异常会中继给调用者。

Parameters
action BiConsumer: The action to be performed for each entry

get

Added in API level 9
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

getOrDefault

Added in API level 24
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

headMap

Added in API level 9
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

headMap

Added in API level 9
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

higherEntry

Added in API level 9
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

higherKey

Added in API level 9
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

isEmpty

Added in API level 9
boolean isEmpty ()

如果此映射不包含键 - 值映射,则返回 true

Returns
boolean true if this map contains no key-value mappings

keySet

Added in API level 9
NavigableSet<K> keySet ()

返回此映射中包含的键的 NavigableSet视图。

集合的迭代器按照升序返回键。 该集的spliterator另外报告CONCURRENTNONNULLSORTEDORDERED ,与被按键的升序的顺序相遇。 该spliterator的比较(见getComparator() )是null如果映射的比较(见comparator() )是null 否则,分割器的比较器与地图比较器相同,或者施加相同的总排序。

该集合由地图支持,因此对地图的更改反映在集合中,反之亦然。 该组支持元件移除,即从映射中相应的映射,经由Iterator.removeSet.removeremoveAllretainAll ,和clear操作。 它不支持addaddAll操作。

视图的迭代器和分割器是 weakly consistent

该方法相当于方法 navigableKeySet

Returns
NavigableSet<K> a navigable set view of the keys in this map

lastEntry

Added in API level 9
Entry<K, V> lastEntry ()

返回与此地图中最大键相关的键值映射,如果地图为空,则null 返回的条目支持Entry.setValue方法。

Returns
Entry<K, V> an entry with the greatest key, or null if this map is empty

lastKey

Added in API level 9
K lastKey ()

返回此地图中当前最后一个(最高)的键。

Returns
K the last (highest) key currently in this map
Throws
NoSuchElementException

lowerEntry

Added in API level 9
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

lowerKey

Added in API level 9
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

merge

Added in API level 24
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

navigableKeySet

Added in API level 9
NavigableSet<K> navigableKeySet ()

返回此映射中包含的键的NavigableSet视图。 集合的迭代器按照升序返回键。 该集合由地图支持,因此对地图的更改反映在集合中,反之亦然。 该组支持元件移除,即从映射中相应的映射,经由Iterator.removeSet.removeremoveAllretainAll ,和clear操作。 它不支持addaddAll操作。

视图的迭代器和分割器是 weakly consistent

Returns
NavigableSet<K> a navigable set view of the keys in this map

pollFirstEntry

Added in API level 9
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

pollLastEntry

Added in API level 9
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

put

Added in API level 9
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

putIfAbsent

Added in API level 9
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

remove

Added in API level 9
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

remove

Added in API level 9
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

replace

Added in API level 9
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

replace

Added in API level 9
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

replaceAll

Added in API level 24
void replaceAll (BiFunction<? super K, ? super V, ? extends V> function)

用对该条目调用给定函数的结果替换每个条目的值,直到处理完所有条目或者该函数抛出异常。 函数抛出的异常会传递给调用者。

Parameters
function BiFunction: the function to apply to each entry

size

Added in API level 9
int size ()

返回此映射中键 - 值映射的数量。 如果此地图包含多个Integer.MAX_VALUE元素,则返回Integer.MAX_VALUE

请注意,与大多数集合不同,此方法不是一个常量操作。 由于这些映射的异步性质,确定当前元素的数量需要遍历它们来对它们进行计数。 此外,在执行此方法期间可能会更改大小,在这种情况下返回的结果将不准确。 因此,这种方法在并发应用程序中通常不是很有用。

Returns
int the number of elements in this map

subMap

Added in API level 9
ConcurrentNavigableMap<K, V> subMap (K fromKey, 
                K toKey)

返回此映射部分的视图,其键的范围从fromKey (含)到toKey (独占)。 (如果fromKeytoKey相等,则返回的地图为空。)返回的地图由此地图支持,因此返回的地图中的更改会反映在此地图中,反之亦然。 返回的地图支持该地图支持的所有可选地图操作。

尝试在其范围外插入密钥时,返回的地图会抛出 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

subMap

Added in API level 9
ConcurrentNavigableMap<K, V> subMap (K fromKey, 
                boolean fromInclusive, 
                K toKey, 
                boolean toInclusive)

返回此映射部分的视图,其键的范围从fromKeytoKey 如果fromKeytoKey相等,则返回的映射是空的,除非fromInclusivetoInclusive均为真。 返回的地图由此地图支持,因此返回地图中的更改会反映在此地图中,反之亦然。 返回的地图支持该地图支持的所有可选地图操作。

返回的映射将尝试在其范围外插入一个键,或者构造其端点位于其范围之外的子映射 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

tailMap

Added in API level 9
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

tailMap

Added in API level 9
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

values

Added in API level 9
Collection<V> values ()

返回此映射中包含的值的 Collection视图。

集合的迭代器按相应键的升序返回值。 藏品的spliterator另外报告CONCURRENTNONNULLORDERED ,与正在提升相应的按键顺序的遭遇订单。

该集合由地图支持,因此地图的更改会反映在集合中,反之亦然。 该collection支持元素移除,即从映射中相应的映射,经由Iterator.removeCollection.removeremoveAllretainAllclear操作。 它不支持addaddAll操作。

视图的迭代器和分割器是 weakly consistent

Returns
Collection<V> a collection view of the values contained in this map

Hooray!