| |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.util
类 AbstractMap<K,V>
java.lang.Object java.util.AbstractMap<K,V>
- 类型参数:
K
- 此映射维护的键的类型V
- 映射值的类型
- 所有已实现的接口:
- Map<K,V>
- 直接已知子类:
- ConcurrentHashMap, ConcurrentSkipListMap, 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
嵌套类摘要 | |
---|---|
static class | AbstractMap.SimpleEntry<K,V> 维护键和值的 Entry。 |
static class | AbstractMap.SimpleImmutableEntry<K,V> 维护不可变的键和值的 Entry。 |
从接口 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) 返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null 。 |
int | hashCode() 返回此映射的哈希码值。 |
boolean | isEmpty() 如果此映射未包含键-值映射关系,则返回 true。 |
Set<K> | keySet() 返回此映射中包含的键的 Set 视图。 |
V | put(K key, V value) 将指定的值与此映射中的指定键关联(可选操作)。 |
void | putAll(Map<? extends K,? extends V> m) 从指定映射中将所有映射关系复制到此映射中(可选操作)。 |
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()
containsValue
public boolean containsValue(Object value)
- 如果此映射将一个或多个键映射到指定值,则返回 true。更确切地讲,当且仅当此映射至少包含一个对满足 (value==null ? v==null : value.equals(v)) 的值 v 的映射关系时,返回 true。对于大多数 Map 接口的实现而言,此操作需要的时间可能与映射大小呈线性关系。
此实现在 entrySet() 上进行迭代,以搜索带有指定值的条目。如果找到这样的条目,则返回 true。如果迭代终止,并且没有找到这样的条目,则返回 false。注意,此实现所需的时间与映射的大小呈线性关系。
- 指定者:
- 接口
Map<K,V>
中的containsValue
- 参数:
value
- 测试是否存在于此映射中的值- 返回:
- 如果此映射将一个或多个键映射到指定值,则返回 true
- 抛出:
ClassCastException
- 如果该值对于此映射是不合适的类型(可选)NullPointerException
- 如果指定值为 null 并且此映射不允许 null 值(可选)
containsKey
public boolean containsKey(Object key)
- 如果此映射包含指定键的映射关系,则返回 true。更确切地讲,当且仅当此映射包含针对满足 (key==null ? k==null : key.equals(k)) 的键 k 的映射关系时,返回 true。(最多只能有一个这样的映射关系)。
此实现在 entrySet() 上进行迭代,以搜索带有指定键的条目。如果找到这样的条目,则返回 true。如果迭代终止,并且没有找到这样的条目,则返回 false。注意,此实现所需的时间与映射的大小呈线性关系;许多实现将重写此方法。
- 指定者:
- 接口
Map<K,V>
中的containsKey
- 参数:
key
- 测试是否存在于此映射中的键- 返回:
- 如果此映射包含指定键的映射关系,则返回 true
- 抛出:
ClassCastException
- 如果该键对于此映射是不合适的类型(可选)NullPointerException
- 如果指定键为 null 并且此映射不允许 null 键(可选)
get
public V get(Object key)
- 返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回
null
。更确切地讲,如果此映射包含满足
(key==null ? k==null : key.equals(k))
的键k
到值v
的映射关系,则此方法返回v
;否则返回null
。(最多只能有一个这样的映射关系)。如果此映射允许 null 值,则返回
null
值并不一定 表示该映射不包含该键的映射关系;也可能该映射将该键显示地映射到null
。使用containsKey
操作可区分这两种情况。此实现在 entrySet() 上进行迭代,以搜索带有指定键的条目。如果找到这样的条目,则返回该条目的值。如果迭代终止,并且没有找到这样的条目,则返回 null。注意,此实现所需的时间与映射的大小呈线性关系;许多实现将重写此方法。
- 参数:
key
- 要返回其关联值的键- 返回:
- 指定键所映射的值;如果此映射不包含该键的映射关系,则返回
null
- 抛出:
ClassCastException
- 如果该键对于此映射是不合适的类型(可选)NullPointerException
- 如果指定键为 null 并且此映射不允许 null 键(可选)
put
public V put(K key, V value)
- 将指定的值与此映射中的指定键关联(可选操作)。如果此映射以前包含一个该键的映射关系,则用指定值替换旧值(当且仅当
m.containsKey(k)
返回 true 时,才能说映射 m 包含键 k 的映射关系)。此实现始终抛出 UnsupportedOperationException。
- 参数:
key
- 与指定值关联的键value
- 与指定键关联的值- 返回:
- 以前与 key 关联的值,如果没有针对 key 的映射关系,则返回 null。(如果该实现支持 null 值,则返回 null 也可能表示此映射以前将 null 与 key 关联)。
- 抛出:
UnsupportedOperationException
- 如果此映射不支持 put 操作ClassCastException
- 如果指定键或值的类不允许将其存储在此映射中NullPointerException
- 如果指定键或值为 null,并且此映射不允许 null 键或值IllegalArgumentException
- 如果指定键或值的某些属性不允许将其存储在此映射中