|
JavaTM 2 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 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。