|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.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>
中的 size
AbstractMap<K extends Enum<K>,V>
中的 size
public boolean containsValue(Object value)
Map<K extends Enum<K>,V>
中的 containsValue
AbstractMap<K extends Enum<K>,V>
中的 containsValue
value
- 將要在此映射中測試其是否存在的值
public boolean containsKey(Object key)
Map<K extends Enum<K>,V>
中的 containsKey
AbstractMap<K extends Enum<K>,V>
中的 containsKey
key
- 將要在此映射中測試其是否存在的鍵
public V get(Object key)
null
。
更確切地講,如果此映射包含滿足 (key == k)
的從鍵 k
到值 v
的映射關係,則此方法返回 v
;否則,返回 null
。(最多只能有一個這樣的映射關係。)
返回 null
值並不 一定 表示此映射不包含此鍵的映射關係;也可能是映射顯式地將此鍵映射到了 null
。containsKey
操作可以用於區分這兩種情況。
Map<K extends Enum<K>,V>
中的 get
AbstractMap<K extends Enum<K>,V>
中的 get
key
- 要返回其關聯值的鍵
null
public V put(K key, V value)
Map<K extends Enum<K>,V>
中的 put
AbstractMap<K extends Enum<K>,V>
中的 put
key
- 指定值與其關聯的鍵value
- 與指定鍵關聯的值
NullPointerException
- 如果指定鍵為 nullpublic V remove(Object key)
Map<K extends Enum<K>,V>
中的 remove
AbstractMap<K extends Enum<K>,V>
中的 remove
key
- 其映射關係要從映射中移除的鍵
public void putAll(Map<? extends K,? extends V> m)
Map<K extends Enum<K>,V>
中的 putAll
AbstractMap<K extends Enum<K>,V>
中的 putAll
m
- 存儲在此映射中的映射關係
NullPointerException
- 如果指定映射為 null,或指定映射中一個或多個鍵為 nullpublic void clear()
Map<K extends Enum<K>,V>
中的 clear
AbstractMap<K extends Enum<K>,V>
中的 clear
public Set<K> keySet()
Set
視圖。 返回的 set 遵守 Map.keySet()
中描述的常規協定。該 set 的迭代器將按其自然順序返回鍵(此順序是宣告列舉常數的順序)。
Map<K extends Enum<K>,V>
中的 keySet
AbstractMap<K extends Enum<K>,V>
中的 keySet
public Collection<V> values()
Collection
視圖。返回的 collection 遵守 Map.keySet()
中描述的常規協定。該 collection 的迭代器返回值是按照它們相應的鍵在映射中出現的順序返回的,即按照它們的自然順序(此順序是宣告列舉常數的順序)。
Map<K extends Enum<K>,V>
中的 values
AbstractMap<K extends Enum<K>,V>
中的 values
public Set<Map.Entry<K,V>> entrySet()
Set
視圖。返回的 set 遵守 Map.keySet()
中描述的常規協定。該 set 的迭代器返回映射關係是按照它們的鍵在映射中出現的順序返回的,即按照它們的自然順序(此順序是宣告列舉常數的順序)。
Map<K extends Enum<K>,V>
中的 entrySet
AbstractMap<K extends Enum<K>,V>
中的 entrySet
public boolean equals(Object o)
Map.equals(Object)
協定,兩個映射表示的映射關係相同,則返回 true。
Map<K extends Enum<K>,V>
中的 equals
AbstractMap<K extends Enum<K>,V>
中的 equals
o
- 要與此映射比較的物件
Object.hashCode()
,
Hashtable
public EnumMap<K,V> clone()
AbstractMap<K extends Enum<K>,V>
中的 clone
Cloneable
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。