Java 中的 EnumMap 類
java.util.EnumMap 類是一種 Map 實現,用於處理列舉鍵。以下是關於 EnumMap 的重要說明 -
列舉對映中的所有鍵都必須來自一個列舉型別,在建立對映時(顯式或隱式)對該型別進行了指定。
會按其鍵的自然順序維護列舉對映。
EnumMap 未同步。如果多個執行緒同時訪問列舉對映,並且其中至少有一個執行緒修改對映,則應在外部將它同步化。
以下是 EnumMap 類的建構函式 -
序號 | 建構函式和說明 |
---|---|
1 | EnumMap(Class<K> keyType) 此建構函式建立一個帶有指定鍵型別的空列舉對映。 |
2 | EnumMap(EnumMap<K,? extends V> m) 此建構函式建立一個具有與指定列舉對映相同的鍵型別的列舉對映,最初包含相同的對映(如果有)。 |
3 | EnumMap(Map<K,? extends V> m) 此建構函式建立一個從指定對映初始化的列舉對映。 |
示例
我們看一個示例 -
import java.util.EnumMap; public class Demo { // create an enum public enum Numbers { ONE, TWO, THREE, FOUR, FIVE }; public static void main(String[] args) { EnumMap<Numbers, String> map1 = new EnumMap<Numbers, String>(Numbers.class); EnumMap<Numbers, String> map2 = new EnumMap<Numbers, String>(Numbers.class); // associate values in map1 map1.put(Numbers.ONE, "1"); map1.put(Numbers.TWO, "2"); map1.put(Numbers.THREE, "3"); map1.put(Numbers.FOUR, "4"); // print the whole map System.out.println("map1:" + map1); // clone map1 to map2 map2 = map1.clone(); // print map2 System.out.println("map2:" + map2); } }
輸出
map1:{ONE=1, TWO=2, THREE=3, FOUR=4} map2:{ONE=1, TWO=2, THREE=3, FOUR=4}
示例
我們再看一個示例,其中我們顯示 Map 中鍵-值對映的計數 -
import java.util.*; public class EnumMapDemo { // create an enum public enum Numbers { ONE, TWO, THREE, FOUR, FIVE }; public static void main(String[] args) { EnumMap<Numbers, String> map = new EnumMap<Numbers, String>(Numbers.class); // assosiate values in map map.put(Numbers.ONE, "1"); map.put(Numbers.TWO, "2"); map.put(Numbers.THREE, "3"); map.put(Numbers.FOUR, "4"); // print the map System.out.println("Map: " + map); // print the number of mappings of this map System.out.println("Number of mappings:" + map.size()); // remove value from Numbers.THREE map.put(Numbers.FIVE, "5"); // print the new number of mappings of this map System.out.println("Number of mappings:" + map.size()); } }
輸出
Map: {ONE=1, TWO=2, THREE=3, FOUR=4} Number of mappings:4 Number of mappings:5
廣告