|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjava.util.AbstractMap<K,V>
java.util.EnumMap<K,V>
public class EnumMap<K extends Enum<K>,V>
与枚举类型键一起使用的专用 Map 实现。枚举映射中所有键都必须来自单个枚举类型,该枚举类型在创建映射时显式或隐式地指定。枚举映射在内部表示为数组。此表示形式非常紧凑且高效。
枚举映射根据其键的自然顺序 来维护(该顺序是声明枚举常量的顺序)。在 collection 视图(keySet()、entrySet() 和 values())所返回的迭代器中反映了这一点。
由 collection 视图返回的迭代器是弱一致 的:它们不会抛出 ConcurrentModificationException,也不一定显示在迭代进行时发生的任何映射修改的效果。
不允许使用 null 键。试图插入 null 键将抛出 NullPointerException。但是,试图测试是否出现 null 键或移除 null 键将不会抛出异常。允许使用 null 值。
像大多数 collection 一样,EnumMap 是不同步的。如果多个线程同时访问一个枚举映射,并且至少有一个线程修改该映射,则此枚举映射在外部应该是同步的。这一般通过对自然封装该枚举映射的某个对象进行同步来完成。如果不存在这样的对象,则应该使用 Collections.synchronizedMap(java.util.Map 方法来“包装”该枚举。最好在创建时完成这一操作,以防止意外的非同步访问:
Map<EnumKey, V> m
= Collections.synchronizedMap(new EnumMap<EnumKey, V>(...));
实现注意事项:所有基本操作都在固定时间内执行。虽然并不保证,但它们很可能比其 HashMap 副本更快。
此类是 Java Collections Framework 的成员。
EnumSet,
序列化表格| 嵌套类摘要 |
|---|
| 从类 java.util.AbstractMap 继承的嵌套类/接口 |
|---|
AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V> |
| 从接口 java.util.Map 继承的嵌套类/接口 |
|---|
Map.Entry<K,V> |
| 构造方法摘要 | |
|---|---|
EnumMap(Class<K> keyType)
创建一个具有指定键类型的空枚举映射。 |
|
EnumMap(EnumMap<K,? extends V> m)
创建一个其键类型与指定枚举映射相同的枚举映射,最初包含相同的映射关系(如果有的话)。 |
|
EnumMap(Map<K,? extends V> m)
创建一个枚举映射,从指定映射对其初始化。 |
|
| 方法摘要 | |
|---|---|
void |
clear()
从此映射中移除所有映射关系。 |
EnumMap<K,V> |
clone()
返回此枚举映射的浅表副本。 |
boolean |
containsKey(Object key)
如果此映射包含指定键的映射关系,则返回 true。 |
boolean |
containsValue(Object value)
如果此映射将一个或多个键映射到指定值,则返回 true。 |
Set<Map.Entry<K,V>> |
entrySet()
返回此映射中所包含映射关系的 Set 视图。 |
boolean |
equals(Object o)
比较指定对象与此映射的相等性。 |
V |
get(Object key)
返回指定键所映射的值,如果此映射不包含此键的映射关系,则返回 null。 |
Set<K> |
keySet()
返回此映射中所包含键的 Set 视图。 |
V |
put(K key,
V value)
将指定值与此映射中指定键关联。 |
void |
putAll(Map<? extends K,? extends V> m)
将指定映射中所有映射关系复制到此映射中。 |
V |
remove(Object key)
从此映射中移除该键的映射关系(如果存在)。 |
int |
size()
返回此映射中的键-值映射关系数。 |
Collection<V> |
values()
返回此映射中所包含值的 Collection 视图。 |
| 从类 java.util.AbstractMap 继承的方法 |
|---|
hashCode, isEmpty, toString |
| 从类 java.lang.Object 继承的方法 |
|---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
| 构造方法详细信息 |
|---|
public EnumMap(Class<K> keyType)
keyType - 此枚举映射的键类型的 class 对象
NullPointerException - 如果 keyType 为空public EnumMap(EnumMap<K,? extends V> m)
m - 用于初始化此枚举映射的枚举映射
NullPointerException - 如果 m 为空public EnumMap(Map<K,? extends V> m)
EnumMap(EnumMap) 相同。否则,指定的映射必须至少包含一个映射关系(以确定新枚举映射的键类型)。
m - 用于初始化此枚举映射的映射
IllegalArgumentException - 如果 m 不是一个 EnumMap 实例,并且不包含映射关系
NullPointerException - 如果 m 为空| 方法详细信息 |
|---|
public int size()
Map<K extends Enum<K>,V> 中的 sizeAbstractMap<K extends Enum<K>,V> 中的 sizepublic boolean containsValue(Object value)
Map<K extends Enum<K>,V> 中的 containsValueAbstractMap<K extends Enum<K>,V> 中的 containsValuevalue - 将要在此映射中测试其是否存在的值
public boolean containsKey(Object key)
Map<K extends Enum<K>,V> 中的 containsKeyAbstractMap<K extends Enum<K>,V> 中的 containsKeykey - 将要在此映射中测试其是否存在的键
public V get(Object key)
null。
更确切地讲,如果此映射包含满足 (key == k) 的从键 k 到值 v 的映射关系,则此方法返回 v;否则,返回 null。(最多只能有一个这样的映射关系。)
返回 null 值并不 一定 表示此映射不包含此键的映射关系;也可能是映射显式地将此键映射到了 null。containsKey 操作可以用于区分这两种情况。
Map<K extends Enum<K>,V> 中的 getAbstractMap<K extends Enum<K>,V> 中的 getkey - 要返回其关联值的键
null
public V put(K key,
V value)
Map<K extends Enum<K>,V> 中的 putAbstractMap<K extends Enum<K>,V> 中的 putkey - 指定值与其关联的键value - 与指定键关联的值
NullPointerException - 如果指定键为 nullpublic V remove(Object key)
Map<K extends Enum<K>,V> 中的 removeAbstractMap<K extends Enum<K>,V> 中的 removekey - 其映射关系要从映射中移除的键
public void putAll(Map<? extends K,? extends V> m)
Map<K extends Enum<K>,V> 中的 putAllAbstractMap<K extends Enum<K>,V> 中的 putAllm - 存储在此映射中的映射关系
NullPointerException - 如果指定映射为 null,或指定映射中一个或多个键为 nullpublic void clear()
Map<K extends Enum<K>,V> 中的 clearAbstractMap<K extends Enum<K>,V> 中的 clearpublic Set<K> keySet()
Set 视图。 返回的 set 遵守 Map.keySet() 中描述的常规协定。该 set 的迭代器将按其自然顺序返回键(此顺序是声明枚举常量的顺序)。
Map<K extends Enum<K>,V> 中的 keySetAbstractMap<K extends Enum<K>,V> 中的 keySetpublic Collection<V> values()
Collection 视图。返回的 collection 遵守 Map.keySet() 中描述的常规协定。该 collection 的迭代器返回值是按照它们相应的键在映射中出现的顺序返回的,即按照它们的自然顺序(此顺序是声明枚举常量的顺序)。
Map<K extends Enum<K>,V> 中的 valuesAbstractMap<K extends Enum<K>,V> 中的 valuespublic Set<Map.Entry<K,V>> entrySet()
Set 视图。返回的 set 遵守 Map.keySet() 中描述的常规协定。该 set 的迭代器返回映射关系是按照它们的键在映射中出现的顺序返回的,即按照它们的自然顺序(此顺序是声明枚举常量的顺序)。
Map<K extends Enum<K>,V> 中的 entrySetAbstractMap<K extends Enum<K>,V> 中的 entrySetpublic boolean equals(Object o)
Map.equals(Object) 协定,两个映射表示的映射关系相同,则返回 true。
Map<K extends Enum<K>,V> 中的 equalsAbstractMap<K extends Enum<K>,V> 中的 equalso - 要与此映射比较的对象
Object.hashCode(),
Hashtablepublic EnumMap<K,V> clone()
AbstractMap<K extends Enum<K>,V> 中的 cloneCloneable
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。