K
-钥匙的Map保持型
V
-映射的值的类型
public abstract class AbstractMap<K,V> extends Object implements Map<K,V>
为了实现一个不可修改的Map,程序员只需要扩展这个类为entrySet方法提供实现,它返回一个集合视图的映射的映射。通常情况下,返回的集合,进而实现在AbstractSet。这集不支持add或remove方法,和它的迭代器不支持remove方法。
为了实现一个可修改的Map,程序员必须重写这个类的put方法(否则抛出一个UnsupportedOperationException),和返回的迭代器的entrySet().iterator()还必须实现其remove方法。
程序员通常提供一个空(无参数)和Map构造,按推荐的Map接口规范。
这个类中的每个非抽象方法的文档都详细描述了它的实现。这些方法可以重写如果Map正在实施的承认,更有效的实现。
这个班的一员 Java Collections Framework。
Map
,
Collection
Modifier and Type | Class and Description |
---|---|
static class |
AbstractMap.SimpleEntry<K,V>
一个维护一个键和一个值的条目。
|
static class |
AbstractMap.SimpleImmutableEntry<K,V>
一个保持一个不可改变的键和值的条目。
|
Modifier | Constructor and Description |
---|---|
protected |
AbstractMap()
唯一的构造函数。
|
Modifier and Type | Method and Description |
---|---|
void |
clear()
从这个映射中移除所有的映射(可选操作)。
|
protected Object |
clone()
返回该
AbstractMap实例浅拷贝:键和值本身不是克隆。
|
boolean |
containsKey(Object key)
返回
true如果这Map包含一个指定的键映射。
|
boolean |
containsValue(Object value)
返回
true如果映射到指定的值的一个或多个键。
|
abstract Set<Map.Entry<K,V>> |
entrySet()
返回一个
Set 视图的映射包含在这个Map。
|
boolean |
equals(Object o)
将指定的对象与此映射的相等性进行比较。
|
V |
get(Object key)
返回指定的键映射的值,或
null 如果这个Map不包含的键映射。
|
int |
hashCode()
返回此映射的哈希代码值。
|
boolean |
isEmpty()
返回
true如果这个Map不包含键值的映射。
|
Set<K> |
keySet()
返回一个
Set 的关键视图包含在这个Map。
|
V |
put(K key, V value)
将指定的值与此映射中的指定键关联(可选操作)。
|
void |
putAll(Map<? extends K,? extends V> m)
从指定的映射到这个Map(可选操作)复制所有的映射。
|
V |
remove(Object key)
如果存在(可选操作),则从该Map中移除一个键的映射。
|
int |
size()
返回这个映射中的键值映射的数目。
|
String |
toString()
返回此映射的字符串表示形式。
|
Collection<V> |
values()
返回一个
Collection 的价值观包含在这个Map。
|
finalize, getClass, notify, notifyAll, wait, wait, wait
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
public int size()
public boolean isEmpty()
public boolean containsValue(Object value)
containsValue
接口
Map<K,V>
value
-它的存在价值进行测试
ClassCastException
-如果值是此Map不合适的类型(
optional)
NullPointerException
-如果指定的值为空,这张Map不允许空值(
optional)
public boolean containsKey(Object key)
containsKey
接口
Map<K,V>
key
键的存在,在这张Map上可以进行测试
ClassCastException
如果关键是这张图的不恰当的类型(
optional)
NullPointerException
-如果指定的键是无效的,这张Map不允许null键(
optional)
public V get(Object key)
null
如果这个Map不包含的键映射。
更正式地说,如果这个图中包含了从关键k
到价值v
这样(key==null ? k==null : key.equals(k))
,映射这个方法返回v
;否则返回null
。(最多可以有一个这样的映射。)
如果Map允许空值,那么一个null
返回值不必要地表明Map不包含的键映射;也有可能是Map明确地映射到null
关键。的containsKey
操作可用于区分这两例。
get
接口
Map<K,V>
key
-关键的相关值被返回
null
如果这个Map不包含的键映射
ClassCastException
如果关键是这张图的不恰当的类型(
optional)
NullPointerException
-如果指定的键是无效的,这张Map不允许null键(
optional)
public V put(K key, V value)
m.containsKey(k)
将返回
true。)
put
接口
Map<K,V>
key
键与指定的值是相关联的
value
值必须与指定键关联
UnsupportedOperationException
-如果
put操作不该Map支持
ClassCastException
如果类指定的键或值防止它被存储在这个Map
NullPointerException
-如果指定的键或值为空,这张Map不允许null键或值
IllegalArgumentException
如果一些属性指定的键或值防止它被存储在这个Map
public V remove(Object key)
(key==null ? k==null : key.equals(k))
映射,映射被删除。(Map最多只能包含一个这样的映射。)
回到这个Map以前相关的关键字的值,或null如果Map中没有包含的键映射。
如果Map允许空值,那么一个null返回值不必要地表明Map中没有包含的键映射;也有可能是Map明确地映射到null关键。
一旦调用返回的映射将不包含指定的键的映射。
remove
接口
Map<K,V>
请注意,此实现抛出一个UnsupportedOperationException如果entrySet迭代器不支持remove方法以及该Map包含一个指定的键映射。
key
键的映射是从Map上移除
UnsupportedOperationException
-如果
remove操作不该Map支持
ClassCastException
如果关键是这张图的不恰当的类型(
optional)
NullPointerException
-如果指定的键是无效的,这张Map不允许null键(
optional)
public void putAll(Map<? extends K,? extends V> m)
put(k, v)
这Map上的每一次关键
k映射中指定的值
v。当操作正在进行中时,此操作的行为是未定义的,如果指定的映射被修改的。
putAll
接口
Map<K,V>
请注意,此实现抛出一个UnsupportedOperationException如果这个Map不支持put运行指定的Map是空的。
m
映射被存储在这个Map
UnsupportedOperationException
-如果
putAll操作不该Map支持
ClassCastException
-如果指定Map的键或值班防止它被存储在这个Map
NullPointerException
-如果指定的映射是零,或者如果这个Map不允许null键或值,并指定Map包含null键或值
IllegalArgumentException
-如果指定Map键和值的一些性质防止它被存储在这个Map
public void clear()
clear
接口
Map<K,V>
请注意,此实现抛出一个UnsupportedOperationException如果entrySet不支持clear操作。
UnsupportedOperationException
-如果
clear操作不该Map支持
public Set<K> keySet()
Set
的关键视图包含在这个Map。该集合是由Map的支持,所以对Map的变化反映在集合中,反之亦然。如果Map是在设置一个迭代过程中修改(除非通过迭代器的
remove操作),迭代的结果是不确定的。设置支持元素的去除,从Map中移除相应的映射,通过
Iterator.remove,
Set.remove,
removeAll,
retainAll,和
clear操作。它不支持
add或
addAll操作。
keySet
接口
Map<K,V>
AbstractSet
。子类的方法返回的迭代器在这个Map的
entrySet()迭代器“包装物”。的
size方法代表这Map的
size法和
contains方法代表这Map的
containsKey方法。
该组创建第一次这种方法被调用,并响应于所有后续调用返回。没有执行同步,所以有一个轻微的机会,多个调用此方法将不会全部返回相同的集合。
public Collection<V> values()
Collection
视图的值包含在这个Map。集合是由Map支持的,所以对Map的变化反映在集合中,反之亦然。如果Map是在集合的迭代进行修改(除非通过迭代器的
remove操作),迭代的结果是不确定的。收集支持元素的去除,从Map中移除相应的映射,通过
Iterator.remove,
Collection.remove,
removeAll,
retainAll和
clear操作。它不支持
add或
addAll操作。
values
接口
Map<K,V>
AbstractCollection
。子类的方法返回的迭代器在这个Map的
entrySet()迭代器“包装物”。的
size方法代表这Map的
size法和
contains方法代表这Map的
containsValue方法。
该集合创建第一次这种方法被调用,并响应于所有后续调用返回。没有执行同步,所以有一个轻微的机会,多个调用此方法将不全部返回相同的集合。
public abstract Set<Map.Entry<K,V>> entrySet()
Map
Set
视图的映射包含在这个Map。该集合是由Map的支持,所以对Map的变化反映在集合中,反之亦然。如果Map是在设置一个迭代过程中修改(除非通过迭代器的
remove操作,或通过
setValue操作返回的迭代器的映射项)的迭代的结果是不确定的。设置支持元素的去除,从Map中移除相应的映射,通过
Iterator.remove,
Set.remove,
removeAll,
retainAll和
clear操作。它不支持
add或
addAll操作。
public boolean equals(Object o)
equals
接口
Map<K,V>
equals
方法重写,继承类
Object
o
对象进行比较,这张Map的平等
Object.hashCode()
,
HashMap
public int hashCode()
Object.hashCode()
。
hashCode
接口
Map<K,V>
hashCode
方法重写,继承类
Object
hashCode()
(进入)的设定,并加入了结果。
Map.Entry.hashCode()
,
Object.equals(Object)
,
Set.equals(Object)
public String toString()
String.valueOf(Object)
。
protected Object clone() throws CloneNotSupportedException
clone
方法重写,继承类
Object
CloneNotSupportedException
-如果对象的类不支持
Cloneable
接口。子类重写
clone
方法也抛出该异常表示实例无法克隆。
Cloneable
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.