• Index

EnumMap 实现类

Last updated: ... / Reads: 54 Edit

EnumMap 是 Java 中的一个特殊实现类,它是基于枚举类型的键的有序映射。它实现了 Map 接口,并且只能使用枚举类型作为键。

EnumMap 内部使用数组来存储数据,数组的大小与枚举类型的元素数量相同。这样做的好处是可以通过索引直接访问数组中的元素,使得 EnumMap 的操作非常高效。

由于 EnumMap 的键必须是枚举类型,所以在创建 EnumMap 时,需要指定一个枚举类型的 Class 对象作为参数。例如:

enum Day {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}

EnumMap<Day, String> enumMap = new EnumMap<>(Day.class);

上面的代码创建了一个以Day枚举类型为键、String 类型为值的 EnumMap 对象。

EnumMap 提供了一些特殊的方法,用于处理枚举类型的键。例如,可以使用 keySet() 方法获取 EnumMap 中所有键的集合,该集合按照枚举类型的顺序进行排序。下面是一个简单的示例代码,演示如何使用 EnumMap:

import java.util.EnumMap;

enum Day {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}

public class EnumMapExample {
    public static void main(String[] args) {
        EnumMap<Day, String> enumMap = new EnumMap<>(Day.class);
        
        enumMap.put(Day.MONDAY, "星期一");
        enumMap.put(Day.TUESDAY, "星期二");
        enumMap.put(Day.WEDNESDAY, "星期三");
        
        System.out.println(enumMap.get(Day.MONDAY));  // 输出:星期一
        
        System.out.println(enumMap.keySet());  // 输出:[MONDAY, TUESDAY, WEDNESDAY]
    }
}

以上示例代码创建了一个以 Day 枚举类型为键、String 类型为值的 EnumMap 对象,并向其中添加了几个键值对。然后通过 get() 方法获取指定键的值,并使用 keySet() 方法获取所有键的集合。


Comments

Make a comment

  • Index