Java枚举(Enum)的默认值
Java中的枚举(Enum)是一种特殊的类型,它允许我们定义一组相关的常量。每个枚举常量都是枚举类型的一个实例。在Java中,枚举默认是有序的,它们的默认值是按照它们在枚举中定义的顺序来分配的。本文将介绍Java枚举的默认值以及如何使用它们。
枚举的定义和使用
在Java中,我们可以使用enum
关键字来定义一个枚举类型。下面是一个示例:
public enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
在上面的示例中,我们定义了一个名为Day
的枚举类型,它包含了一周中的每一天。这些常量MONDAY
、TUESDAY
等都是Day
类型的实例。
我们可以使用枚举常量来声明变量并进行赋值,如下所示:
Day today = Day.MONDAY;
上面的代码将today
变量声明为Day
类型,并将其赋值为Day.MONDAY
。
枚举的默认值
在Java中,枚举的默认值是按照它们在枚举中定义的顺序来分配的。也就是说,第一个枚举常量的默认值为0,第二个为1,以此类推。例如,对于上面定义的Day
枚举,Day.MONDAY
的默认值为0,Day.TUESDAY
的默认值为1,依此类推。
我们可以通过调用枚举常量的ordinal()
方法来获取其默认值。
Day today = Day.MONDAY;
int ordinal = today.ordinal();
System.out.println("Today is day " + ordinal);
上面的代码将输出Today is day 0
,因为Day.MONDAY
的默认值为0。
需要注意的是,枚举的默认值是从0开始的,如果我们改变了枚举常量的顺序或添加了新的常量,那么默认值也会相应地改变。
示例:使用枚举统计星期几的数量
下面我们来使用枚举来统计一组星期几出现的次数。首先,我们可以定义一个枚举类型Day
,表示一周中的每一天:
public enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
然后,我们可以编写一个方法来统计一组星期几出现的次数:
import java.util.HashMap;
import java.util.Map;
public class DayCounter {
public static void main(String[] args) {
Day[] days = {Day.MONDAY, Day.TUESDAY, Day.MONDAY, Day.WEDNESDAY, Day.MONDAY, Day.THURSDAY, Day.FRIDAY, Day.SATURDAY, Day.SUNDAY};
Map<Day, Integer> countMap = countDays(days);
for (Map.Entry<Day, Integer> entry : countMap.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
public static Map<Day, Integer> countDays(Day[] days) {
Map<Day, Integer> countMap = new HashMap<>();
for (Day day : days) {
countMap.put(day, countMap.getOrDefault(day, 0) + 1);
}
return countMap;
}
}
上面的代码中,我们定义了一个DayCounter
类,并在main
方法中创建了一个包含一组星期几的数组。然后,我们调用countDays
方法来统计每个星期几出现的次数,并将结果打印出来。
运行上面的代码,将输出如下结果:
MONDAY: 3
TUESDAY: 1
WEDNESDAY: 1
THURSDAY: 1
FRIDAY: 1
SATURDAY: 1
SUNDAY: 1
从上面的输出结果可以看出,Day.MONDAY
出现了3次,而其他的星期几只出现了1次。
总结
本文介