java中如何枚举
枚举的定义与基本语法
在Java中,枚举(Enum)是一种特殊的数据类型,用于定义一组固定的常量。枚举通过enum关键字声明,每个枚举常量都是枚举类型的实例。
public enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
枚举的常用方法
枚举类型自动继承java.lang.Enum类,提供以下常用方法:
values():返回枚举的所有值数组。valueOf(String name):根据名称返回对应的枚举常量。name()和ordinal():分别获取枚举常量的名称和声明顺序(从0开始)。
Day[] days = Day.values(); // 获取所有枚举值
Day day = Day.valueOf("MONDAY"); // 根据名称获取枚举
String name = day.name(); // 输出 "MONDAY"
int order = day.ordinal(); // 输出 0
枚举的构造函数与方法
枚举可以包含构造函数、字段和方法,每个枚举常量可以调用这些方法。
public enum Planet {
MERCURY(3.303e+23, 2.4397e6),
VENUS(4.869e+24, 6.0518e6);
private final double mass;
private final double radius;
Planet(double mass, double radius) {
this.mass = mass;
this.radius = radius;
}
public double getMass() { return mass; }
public double getRadius() { return radius; }
}
枚举与switch语句
枚举常用于switch语句,提供类型安全的条件分支。
Day day = Day.MONDAY;
switch (day) {
case MONDAY:
System.out.println("星期一");
break;
case TUESDAY:
System.out.println("星期二");
break;
// 其他分支...
}
枚举实现接口
枚举可以实现接口,为每个常量提供不同的行为。
public interface Operation {
double apply(double x, double y);
}
public enum BasicOperation implements Operation {
PLUS { public double apply(double x, double y) { return x + y; } },
MINUS { public double apply(double x, double y) { return x - y; } }
}
枚举集合与工具类
Java提供EnumSet和EnumMap高效处理枚举集合:

EnumSet:基于位向量的高性能集合。EnumMap:键为枚举类型的专用映射。
EnumSet<Day> weekend = EnumSet.of(Day.SATURDAY, Day.SUNDAY);
EnumMap<Day, String> activities = new EnumMap<>(Day.class);
activities.put(Day.MONDAY, "Work");
通过以上方式,可以充分利用枚举的类型安全性和可读性,简化代码逻辑。






