Java 中的 EnumMap 类

javaobject oriented programmingprogramming更新于 2025/12/22 17:48:17

java.util.EnumMap 类是用于枚举键的专用 Map 实现。以下是有关 EnumMap − 的要点

  • 枚举映射中的所有键必须来自在创建映射时明确或隐式指定的单个枚举类型。

  • 枚举映射按其键的自然顺序维护。

  • EnumMap 不同步。如果多个线程同时访问枚举映射,并且至少有一个线程修改了映射,则应该在外部进行同步。

以下是 EnumMap 类的构造函数 −

Sr.No构造函数 &说明
1EnumMap(Class<K> keyType)
此构造函数创建一个具有指定键类型的空枚举映射。
2EnumMap(EnumMap<K,? extends V> m)
此构造函数创建一个具有与指定枚举映射相同键类型的枚举映射, 最初包含相同的映射(如果有)。
3EnumMap(Map<K,? extends V> m)
此构造函数创建一个从指定映射初始化的枚举映射。

示例

让我们看一个例子−

import java.util.EnumMap;
public class Demo {
   // 创建枚举
   public enum Numbers {
      一、二、三、四、五
   };
   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);
      // 关联 map1 中的值
      map1.put(Numbers.ONE, "1");
      map1.put(Numbers.TWO, "2");
      map1.put(Numbers.THREE, "3");
      map1.put(Numbers.FOUR, "4");
      // 打印整个映射
      System.out.println("map1:" + map1);
      // 将 map1 克隆到 map2
      map2 = map1.clone();
      // 打印 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 {
   // 创建一个枚举
   public enum Numbers {
      ONE, TWO, THREE, FOUR, FIVE
   };
   public static void main(String[] args) {
      EnumMap<Numbers, String> map = new EnumMap<Numbers, String>(Numbers.class);
      // 在 map 中关联值
      map.put(Numbers.ONE, "1");
      map.put(Numbers.TWO, "2");
      map.put(Numbers.THREE, "3");
      map.put(Numbers.FOUR, "4");
      // 打印映射
      System.out.println("Map: " + map);
      // 打印此映射的映射数
      System.out.println("Number of map:" + map.size());
      // 从 Numbers.THREE 中删除值
      map.put(Numbers.FIVE, "5");
      // 打印此映射的新映射数
      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

相关文章


有用资源