Java EnumMap 類



引言

Java EnumMap 類是專用的對映實現,用於使用列舉鍵。以下是有關 EnumMap 的重要要點 -

  • 列舉對映中的所有鍵都必須來自建立對映時明確或隱式指定的單個列舉型別。

  • 列舉對映按其鍵的自然順序維護。

  • EnumMap 沒有進行同步。如果多個執行緒併發訪問列舉對映,並且至少有一個執行緒修改了對映,則應從外部對其進行同步。

類宣告

以下是java.util.EnumMap 類的宣告 -

public class EnumMap<K extends Enum<K>,V>
   extends AbstractMap<K,V>
   implements Serializable, Cloneable

類建構函式

序號 建構函式和說明
1

EnumMap(Class<K> keyType)

此建構函式建立一個具有指定鍵型別的空列舉對映。

2

EnumMap(EnumMap<K,? extends V> m)

此建構函式建立一個具有與指定的列舉對映相同的鍵型別的列舉對映,最初包含相同的對映(如果存在)。

3

EnumMap(Map<K,? extends V> m)

此建構函式建立一個從指定對映初始化的列舉對映。

類方法

序號 方法與說明
1 void clear()

此方法從此對映中刪除所有對映。

2 EnumMap<K,V> clone()

此方法返回此列舉對映的淺副本。

3 boolean containsKey(Object key)

如果此對映包含指定鍵的對映,則此方法返回 true。

4 boolean containsValue(Object value)

如果此對映將一個或多個鍵對映到指定值,則此方法返回 true。

5 Set<Map.Entry<K,V>> entrySet()

此方法返回此對映中包含的對映的 Set 檢視。

6 boolean equals(Object o)

此方法將指定物件與此對映進行比較以獲得相等性。

7 V get(Object key)

此方法返回指定鍵被對映到的值,如果此對映不包含鍵的對映,則返回 null。

8 int hashCode()

此方法為此對映返回雜湊程式碼值。

9 Set<K> keySet()

此方法返回此對映中包含的鍵的 Set 檢視。

10 V put(K key, V value)

此方法將指定值與該對映中的指定鍵關聯。

11 void putAll(Map<? extends K,? extends V> m)

此方法將指定對映中的所有映射覆制到此對映。

12 V remove(Object key)

如果存在,此方法從該對映中刪除此鍵的對映。

13 int size()

此方法返回該對映中的鍵值對映數。

14 Collection<V> values()

此方法返回此對映中包含的值的 Collection 檢視。

繼承的方法

此類繼承以下類的類方法 −

  • java.util.AbstractMap
  • java.util.Object

向 EnumMap 新增 Enum、Integer 對示例

以下示例展示了 Java EnumMap put(K,V) 方法用於在 EnumMap 例項中放入值。我們建立了一個列舉 Numbers。然後使用列舉 numbers 和整數建立 EnumMap。使用 put(K,V) 添加了幾個條目並列印了 enumMap。再次使用 put() 方法,替換了 enumMap 的一個值並再次列印了對映。

package com.tutorialspoint;

import java.util.EnumMap;

public class EnumMapDemo {
   
   // create an enum
   public enum Numbers{ONE, TWO, THREE, FOUR, FIVE}; 

   public static void main(String[] args) {
      
      EnumMap<Numbers,Integer> map = 
         new EnumMap<>(Numbers.class);

      // associate values in map
      map.put(Numbers.ONE, 1);
      map.put(Numbers.TWO, 2);
      map.put(Numbers.THREE,3);

      // print the whole map
      System.out.println(map); 

      map.put(Numbers.THREE, 4);
	  
      // print the updated map
      System.out.println(map);
   }
}

讓我們編譯並執行上述程式,它會生成以下結果 −

{ONE=1, TWO=2, THREE=3}
{ONE=1, TWO=2, THREE=4}
廣告