W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
java.lang.Object
|---java.util.AbstractMap<K,V&
|---|---java.util.EnumMap<K,V&
public class EnumMap<K extends Enum<K>,V>
extends AbstractMap<K,V>
implements Serializable, Cloneable
用于枚舉類型鍵的專用 Map 實(shí)現(xiàn)。 枚舉映射中的所有鍵都必須來自創(chuàng)建映射時(shí)顯式或隱式指定的單個(gè)枚舉類型。 枚舉映射在內(nèi)部表示為數(shù)組。 這種表示非常緊湊和高效。
枚舉映射以其鍵的自然順序(聲明枚舉常量的順序)維護(hù)。這反映在集合視圖(keySet()、entrySet() 和 values())返回的迭代器中。
集合視圖返回的迭代器是弱一致的:它們永遠(yuǎn)不會(huì)拋出 ConcurrentModificationException 并且它們可能會(huì)或可能不會(huì)顯示在迭代過程中對(duì)映射進(jìn)行的任何修改的影響。
不允許使用空鍵。嘗試插入空鍵將引發(fā) NullPointerException。但是,嘗試測試是否存在空鍵或刪除空鍵將正常運(yùn)行。允許空值。
像大多數(shù)集合實(shí)現(xiàn)一樣,EnumMap 是不同步的。如果多個(gè)線程同時(shí)訪問一個(gè)枚舉映射,并且至少有一個(gè)線程修改了映射,則它應(yīng)該在外部同步。這通常是通過同步一些自然封裝枚舉映射的對(duì)象來完成的。如果不存在這樣的對(duì)象,則應(yīng)使用 Collections#synchronizedMap 方法“包裝”地圖。這最好在創(chuàng)建時(shí)完成,以防止意外的不同步訪問:
Map<EnumKey, V> m
= Collections.synchronizedMap(new EnumMap<EnumKey, V>(...));
實(shí)施說明:所有基本操作都在恒定時(shí)間內(nèi)執(zhí)行。 它們很可能(盡管不能保證)比它們的 HashMap 對(duì)應(yīng)物更快。
此類是 Java 集合框架的成員。
從類 java.util.AbstractMap 繼承的嵌套類/接口 |
---|
AbstractMap.SimpleEntryK,V, AbstractMap.SimpleImmutableEntryK,V |
從接口 java.util.Map 繼承的嵌套類/接口 |
---|
Map.EntryK,V |
構(gòu)造函數(shù) | 描述 |
---|---|
EnumMap(ClassK keyType) | 創(chuàng)建具有指定鍵類型的空枚舉映射。 |
EnumMap(EnumMap<K,? extends V> m) | 創(chuàng)建一個(gè)與指定枚舉映射具有相同鍵類型的枚舉映射,最初包含相同的映射(如果有)。 |
EnumMap(Map<K,? extends V> m) | 創(chuàng)建一個(gè)從指定映射初始化的枚舉映射。 |
修飾符和類型 | 方法 | 描述 |
---|---|---|
void | clear() | 從此映射中刪除所有映射。 |
EnumMapK,V | clone() | 返回此枚舉映射的淺表副本。 |
boolean | containsKey(Object key) | 如果此映射包含指定鍵的映射,則返回 true。 |
boolean | containsValue(Object value) | 如果此映射將一個(gè)或多個(gè)鍵映射到指定值,則返回 true。 |
SetMap.EntryK,V | entrySet() | 返回此映射中包含的映射的 Set 視圖。 |
boolean | equals(Object o) | 比較指定對(duì)象與此映射是否相等。 |
V | get(Object key) | 返回指定鍵映射到的值,如果此映射不包含該鍵的映射,則返回 null。 |
int | hashCode() | 返回此映射的哈希碼值。 |
SetK | keySet() | 返回此映射中包含的鍵的 Set 視圖。 |
V | put(K key, V value) | 將指定的值與此映射中的指定鍵相關(guān)聯(lián)。 |
void | putAll(Map<? extends K,? extends V> m) | 將所有映射從指定映射復(fù)制到此映射。 |
V | remove(Object key) | 如果存在,則從此映射中刪除此鍵的映射。 |
int | size() | 返回此映射中鍵值映射的數(shù)量。 |
CollectionV | values() | 返回此映射中包含的值的集合視圖。 |
從類 java.util.AbstractMap 繼承的方法 |
---|
isEmpty, toString |
從接口 java.util.Map 繼承的方法 |
---|
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll |
從類 java.lang.Object 繼承的方法 |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
public EnumMap(ClassK keyType)
創(chuàng)建具有指定鍵類型的空枚舉映射。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
keyType | 此枚舉映射的鍵類型的類對(duì)象 |
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 keyType 為空 |
public EnumMap(EnumMap<K,? extends V> m)
創(chuàng)建一個(gè)與指定枚舉映射具有相同鍵類型的枚舉映射,最初包含相同的映射(如果有)。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
m | 從中初始化此枚舉映射的枚舉映射 |
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 m 為空 |
public EnumMap(Map<K,? extends V> m)
創(chuàng)建一個(gè)從指定映射初始化的枚舉映射。 如果指定的映射是 EnumMap 實(shí)例,則此構(gòu)造函數(shù)的行為與 EnumMap(java.util.EnumMap) 相同。 否則,指定的映射必須包含至少一個(gè)映射(以確定新枚舉映射的鍵類型)。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
m | 從中初始化此枚舉映射的映射 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalArgumentException | 如果 m 不是 EnumMap 實(shí)例并且不包含映射 |
NullPointerException | 如果 m 為空 |
public int size()
返回此映射中鍵值映射的數(shù)量。
指定者:
接口 Map<K 中的大小擴(kuò)展 EnumK,V>
覆蓋:
類 AbstractMap<K extends EnumK,V> 中的大小
返回:
此映射中的鍵值映射的數(shù)量
public boolean containsValue(Object value)
如果此映射將一個(gè)或多個(gè)鍵映射到指定值,則返回 true。
指定者:
接口 Map<K extends EnumK,V> 中的 containsValue
覆蓋:
類 AbstractMap<K extends EnumK,V> 中的 containsValue
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
value | 要測試其在此映射中的存在的值 |
返回:
如果此映射將一個(gè)或多個(gè)鍵映射到此值,則為 true
public boolean containsKey(Object key)
如果此映射包含指定鍵的映射,則返回 true。
指定者:
接口 Map<K extends EnumK,V> 中的 containsKey
覆蓋:
類 AbstractMap<K extends EnumK,V> 中的 containsKey
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
key | 要測試其在此映射中的存在的鍵 |
返回:
如果此映射包含指定鍵的映射,則為 true
public V get(Object key)
返回指定鍵映射到的值,如果此映射不包含該鍵的映射,則返回 null。
更正式地說,如果此映射包含從鍵 k 到值 v 的映射,使得 (key == k),則此方法返回 v; 否則返回null。 (最多可以有一個(gè)這樣的映射。)
返回值為 null 并不一定表示該映射不包含該鍵的映射; 映射也可能將鍵顯式映射為空。 containsKey 操作可用于區(qū)分這兩種情況。
指定者:
進(jìn)入接口 Map<K extends EnumK,V>
覆蓋:
進(jìn)入類 AbstractMap<K extends EnumK,V>
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
key | 要返回其關(guān)聯(lián)值的鍵 |
返回:
指定鍵映射到的值,如果此映射不包含該鍵的映射,則為 null
public V put(K key, V value)
將指定的值與此映射中的指定鍵相關(guān)聯(lián)。 如果映射先前包含此鍵的映射,則替換舊值。
指定者:
放入接口 Map<K extends EnumK,V>
覆蓋:
放入類 AbstractMap<K extends EnumK,V>
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
key | 與指定值關(guān)聯(lián)的鍵 |
value | 要與指定鍵關(guān)聯(lián)的值 |
返回:
與指定鍵關(guān)聯(lián)的先前值,如果沒有鍵映射,則返回 null。 (返回 null 還可以指示映射先前將 null 與指定的鍵相關(guān)聯(lián)。)
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果指定的鍵為空 |
public V remove(Object key)
如果存在,則從此映射中刪除此鍵的映射。
指定者:
在接口 Map<K extends EnumK,V> 中刪除
覆蓋:
在類 AbstractMap<K extends EnumK,V> 中刪除
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
key | 要從映射中刪除其映射的鍵 |
返回:
與指定鍵關(guān)聯(lián)的先前值,如果沒有鍵條目,則為 null。 (返回 null 還可以指示映射先前將 null 與指定的鍵相關(guān)聯(lián)。)
public void putAll(Map<? extends K,? extends V> m)
將所有映射從指定映射復(fù)制到此映射。 這些映射將替換此映射對(duì)當(dāng)前指定映射中的任何鍵的任何映射。
指定者:
接口 Map<K extends EnumK,V> 中的 putAll
覆蓋:
類 AbstractMap<K extends EnumK,V> 中的 putAll
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
m | 要存儲(chǔ)在此映射中的映射 |
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 指定映射為空,或者指定映射中的一個(gè)或多個(gè)鍵為空 |
public void clear()
從此映射中刪除所有映射。
指定者:
在接口 Map<K extends EnumK,V> 中清除
覆蓋:
清除類 AbstractMap<K extends EnumK,V>
public SetK keySet()
返回此映射中包含的鍵的 Set 視圖。 返回的集合遵守 Map#keySet() 中概述的一般約定。 集合的迭代器將按其自然順序(聲明枚舉常量的順序)返回鍵。
指定者:
接口 Map<K extends EnumK,V> 中的 keySet
覆蓋:
類 AbstractMap<K extends EnumK,V> 中的 keySet
返回:
此枚舉映射中包含的鍵的集合視圖
public CollectionV values()
返回此映射中包含的值的集合視圖。 返回的集合遵守 Map#values() 中概述的一般合同。 集合的迭代器將按照它們對(duì)應(yīng)的鍵在 map 中出現(xiàn)的順序返回值,這是它們的自然順序(聲明枚舉常量的順序)。
指定者:
接口 Map<K extends EnumK,V> 中的值
覆蓋:
AbstractMap<K extends EnumK,V> 類中的值
返回:
此映射中包含的值的集合視圖
public SetMap.EntryK,V entrySet()
返回此映射中包含的映射的 Set 視圖。 返回的集合遵守 Map#keySet() 中概述的一般約定。 集合的迭代器將按照它們的鍵出現(xiàn)在映射中的順序返回映射,這是它們的自然順序(聲明枚舉常量的順序)。
指定者:
接口 Map<K extends EnumK,V> 中的 entrySet
指定者:
類 AbstractMap<K extends EnumK,V> 中的 entrySet
返回:
此枚舉映射中包含的映射的集合視圖
public boolean equals(Object o)
比較指定對(duì)象與此映射是否相等。 如果給定對(duì)象也是一個(gè)映射并且兩個(gè)映射表示相同的映射,則返回 true,如 Map#equals(Object) 協(xié)定中所指定的。
指定者:
接口 Map<K extends EnumK,V> 中的等于
覆蓋:
類 AbstractMap<K extends EnumK,V> 中的等于
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
o | 要與此 map 比較是否相等的對(duì)象 |
返回:
如果指定的對(duì)象等于此 map,則為 true
public int hashCode()
返回此地圖的哈希碼值。 映射的哈希碼定義為映射中每個(gè)條目的哈希碼的總和。
指定者:
接口 Map<K extends EnumK,V> 中的 hashCode
覆蓋:
AbstractMap<K extends EnumK,V> 類中的 hashCode
返回:
此映射的哈希碼值
public EnumMapK,V clone()
返回此枚舉映射的淺表副本。值本身沒有被克隆。
覆蓋:
在類 AbstractMap<K extends EnumK,V> 中克隆
返回:
此枚舉映射的淺表副本
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: