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, toStringpublic 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.