|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.util
类 AbstractMap<K,V>
java.lang.Object java.util.AbstractMap<K,V>
- 所有已实现的接口:
- Map<K,V>
- 直接已知子类:
- ConcurrentHashMap, EnumMap, HashMap, IdentityHashMap, TreeMap, WeakHashMap
此类提供了 Map 接口的骨干实现,从而最大限度地减少了实现此接口所需的工作。
要实现不可修改的映射,程序员只需扩展此类并提供 entrySet 方法的实现即可,该方法将返回映射的映射关系 Set 视图。通常,返回的 Set 将依次在 AbstractSet 上实现。此 Set 不支持 add 或 remove 方法,其迭代器也不支持 remove 方法。
要实现可修改的映射,程序员还必须另外重写此类的 put 方法(否则将抛出 UnsupportedOperationException),并且由 entrySet().iterator() 所返回的迭代器必须另外实现其 remove 方法。
按照 Map 接口规范中的推荐,程序员通常应该提供一个 void(无参数)构造方法和 map 构造方法。
此类中每个非抽象方法的文档详细描述了其实现。如果要实现的映射允许更有效的实现,则可以重写这些方法中的每个方法。
此类是 Java Collections Framework 的成员。
- 从以下版本开始:
- 1.2
- 另请参见:
-
Map
,Collection
嵌套类摘要 |
---|
从接口 java.util.Map 继承的嵌套类/接口 |
---|
Map.Entry<K,V> |
构造方法摘要 | |
---|---|
protected |
AbstractMap() 单独的构造方法。 |
方法摘要 | |
---|---|
void |
clear() 从此映射中移除所有映射关系(可选操作)。 |
protected Object |
clone() 返回此 AbstractMap 实例的浅表复制:不克隆键和值本身。 |
boolean |
containsKey(Object key) 如果此映射包含指定键的映射关系,则返回 true。 |
boolean |
containsValue(Object value) 如果此映射将一个或多个键映射到该值,则返回 true。 |
abstract Set<Map.Entry<K,V>> |
entrySet() 返回包含在此映射中的映射关系的 Set 视图。 |
boolean |
equals(Object o) 比较指定对象与此映射的相等性。 |
V |
get(Object key) 返回此映射将指定键映射到的值。 |
int |
hashCode() 返回此映射的哈希码值。 |
boolean |
isEmpty() 如果此映射不包含任何键-值映射关系,则返回 true。 |
Set<K> |
keySet() 返回包含在此映射中的键的 Set 视图。 |
V |
put(K key, V value) 将指定的值与此映射中的指定键关联起来(可选操作)。 |
void |
putAll(Map<? extends K,? extends V> t) 将指定映射的所有映射关系复制到此映射中(可选操作)。 |
V |
remove(Object key) 如果此映射中存在此键的映射关系,则移除该映射关系(可选操作)。 |
int |
size() 返回此映射中键-值映射关系的数量。 |
String |
toString() 返回此映射的字符串表示形式。 |
Collection<V> |
values() 返回包含在此映射中的值的 collection 视图。 |
从类 java.lang.Object 继承的方法 |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
构造方法详细信息 |
---|
AbstractMap
protected AbstractMap()
- 单独的构造方法。(由子类构造方法调用,通常是隐式的。)
方法详细信息 |
---|
size
public int size()
-
返回此映射中键-值映射关系的数量。如果该映射包含多于 Integer.MAX_VALUE 的元素,则返回 Integer.MAX_VALUE。
此实现返回 entrySet().size()。
-
- 返回:
- 此映射中键-值映射关系的数量。
isEmpty
public boolean isEmpty()
-
如果此映射不包含任何键-值映射关系,则返回 true。
此实现返回 size() == 0。
-
- 返回:
- 如果此映射不包含任何键-值映射关系,则返回 true。
containsValue
public boolean containsValue(Object value)
-
如果此映射将一个或多个键映射到该值,则返回 true。更正式地说,当且仅当此映射包含至少一个到值 v 的映射关系,并且 (value==null ? v==null : value.equals(v)) 时才返回 true。对于大多数映射实现而言,此操作所需的时间可能与映射的大小呈线性关系。
此实现在 entrySet() 上进行迭代,以搜索带有指定值的项。如果找到这样的项,则返回 true。如果迭代终止,并且没有找到这样的项,则返回 false。注意,此实现所需的时间与映射的大小呈线性关系。
-
- 指定者:
-
接口
Map<K,V>
中的containsValue
-
- 参数:
-
value
- 将测试此映射中是否存在的值。 - 返回:
- 如果此映射将一个或多个键映射到该值,则返回 true。
containsKey
public boolean containsKey(Object key)
-
如果此映射包含指定键的映射关系,则返回 true。
此实现在 entrySet() 上进行迭代,以搜索带有指定键的项。如果找到这样的项,则返回 true。如果迭代终止,并且没有找到这样的项,则返回 false。注意,此实现所需的时间与映射的大小呈线性关系;许多实现将重写此方法。
-
- 指定者:
-
接口
Map<K,V>
中的containsKey
-
- 参数:
-
key
- 将测试此映射中是否存在的键。 - 返回:
- 如果此映射包含指定键的映射关系,则返回 true。
- 抛出:
-
NullPointerException
- 如果该键为 null 并且此映射不允许包含 null 键。
get
public V get(Object key)
-
返回此映射将指定键映射到的值。如果该映射不包含此键的映射关系,则返回 null。返回值 null 不一定 表明该映射不包含该键的映射关系;也可能是该映射显式地将该键映射到 null。可以使用 containsKey 操作来区分这两种情况。
此实现在 entrySet() 上进行迭代,以搜索带有指定键的项。如果找到这样的项,则返回该项的值。如果迭代终止,并且没有找到这样的项,则返回 null。注意,此实现所需的时间与映射的大小呈线性关系;许多实现将重写此方法。
-
- 参数:
-
key
- 与返回值关联的键。 - 返回:
- 此映射将指定键映射到的值。
- 抛出:
-
NullPointerException
- 如果键为 null 并且此映射不允许包含 null 键。 - 另请参见:
-
containsKey(Object)
put
public V put(K key, V value)
-
将指定的值与此映射中的指定键关联起来(可选操作)。如果映射以前包含此键的映射关系,则替换旧的值。
此实现始终抛出 UnsupportedOperationException。
-
- 参数:
-
key
- 将与指定值关联的键。 -
value
- 将与指定键关联的值。 - 返回:
- 指定键以前的关联值。如果没有该键的映射关系,则返回 null。(如果该实现支持 null 值,则返回 null 也可以表明该映射以前将 null 与指定键相关联。)
- 抛出:
-
UnsupportedOperationException
- 如果此映射不支持 put 操作。 -
ClassCastException
- 如果指定键或值的类不允许它存储在此映射中。 -
IllegalArgumentException
- 如果此键或值 * 的某方面不允许它存储在此映射中。 -
NullPointerException
- 如果此映射不允许 null 键或值,并且指定键或值为 null。
remove
public V remove(Object key)
-
如果此映射中存在此键的映射关系,则移除该映射关系(可选操作)。
此实现在 entrySet() 上进行迭代,以搜索带有指定键的项。如果找到这样的项,则通过 getValue 操作获得该项的值,然后使用迭代器的 remove 操作从 Collection(以及底层映射)中移除该项,并返回保存的值。如果迭代终止,并且没有找到这样的项,则返回 null。注意,此实现所需要时间与映射大小呈线性关系;许多实现将重写此方法。
注意,如果 entrySet 迭代器不支持 remove 方法并且此映射包含指定键的映射关系,则此实现会抛出 UnsupportedOperationException。
-
- 参数:
-
key
- 将从映射中移除其映射关系的键。 - 返回:
- 指定键以前的关联值。如果没有该键的项,则返回 null。(如果该实现支持 null 值,则返回 null 也可以表明该映射以前将 null 与指定键相关联。)
- 抛出:
-
UnsupportedOperationException
- 如果此映射不支持 remove 操作。