Java中的EnumMap是一种特殊的映射(Map)集合,它针对枚举类型的键进行了优化。它的实现基于数组,在枚举类型键值集合较小时,它的效率比HashMap更高。 EnumMap的实例化必须指定一个枚举类型作为泛型参数。当给定一个枚举类型作为参数后,EnumMap就会创建一个数组来存储键值和对应的值。该数组的长度等于该枚举类型的枚举常...
这里,使用Role.values()可以获取枚举的所有值,然后通过get方法从Map中查找对应的描述并打印出来。 代码整合 这是将所有步骤整合后的完整示例代码: importjava.util.HashMap;importjava.util.Map;// 定义枚举RolepublicenumRole{DEVELOPER,DESIGNER,MANAGER;}// 主类publicclassMain{publicstaticvoidmain(String[]args){...
如果Map的key是enum类型,推荐使用EnumMap,既保证速度,也不浪费空间。 使用EnumMap的时候,根据面向抽象编程的原则,应持有Map接口。
而Map是Java中的一种集合框架,用于存储键值对,并提供通过键来查找和访问值的功能。 使用枚举作为Map的键是常见的做法,因为枚举实例是唯一的,可以作为键的可靠标识符。以下是一个示例,展示如何使用枚举作为键来创建一个Map: ```java import ; import ; public class EnumMapExample { enum Day { MONDAY, ...
使用Map存储枚举常量 接下来,我们将使用Map来存储枚举常量,以便于根据枚举常量的名称或索引来获取对应的枚举值。下面是一个示例代码: importjava.util.Map;importjava.util.HashMap;publicclassEnumMapExample{publicstaticvoidmain(String[]args){Map<String,Weekday>weekdayMap=newHashMap<>();weekdayMap.put("MOND...
// EnumMap的使用 EnumMap<EnumTest, String> weekMap = new EnumMap(EnumTest. class ); weekMap.put(EnumTest.MON, "星期一" ); weekMap.put(EnumTest.TUE, "星期二" ); // ... ... for (Iterator<Entry<EnumTest, String>> iter = weekMap.entrySet().iterator(); iter.hasNext();...
public enum Color { RED, GREEN, BLUE } EnumMap<Color, String> colorMap = new EnumMap<Color, String>(Color.class); ``` 四、使用EnumMap 为了向EnumMap中添加元素,我们可以使用put()方法,如下所示: ``` EnumMap<Color, String> colorMap = new EnumMap<Color, String>(Color.class); ...
EnumMap是枚举的专属map,效率比通常的HashMap更高。EnumMap只能接收同一枚举类型的实例作为键值且不能为null,通过ordinal方法(声明枚举对象的顺序的索引)获取枚举key对应的数组下标。在使用上EnumMap和HashMap区别不大,只是key全部为枚举类型的实例,看下get方法:public V get(Object key) { // 保证key是枚...
EnumMap是是一种键为枚举类型的特殊的Map实现。所有的Key也必须是一种枚举类型,EnumMap是使用数组来实现的。(两个数组,一个数组keyUniverse存储key,另一个数组vals存储val,两个数组通过下标对应起来) EnumMap<Course,String>map=newEnumMap<Course,String>(Course.class);map.put(Course.ONE,"语文");map.put(Co...