enum是Java中的一种数据结构,最常用的地方大概就是定义集合的取值范围了,也特别适合联合switch多分支选择结构使用。
最简单的enum的结构如下所示:
enum WEEK{MON,TUE,WEN,THU,FRI,SAT,SUN}
这种结构当中MON的数据类型是WEEK,有点区别于我们通常见到的其他类型。遍历这个enum的时候使用WEEK.getValues()获取全部的实例,然后遍历数组。
for(WEEK day: WEEK.getValues()){
day.value();
// add logic here
}
更高级和更复杂的enum是自定义的enum:
enum WEEK{
MON("first day","hello"),
TUE("second day","good");
private String description;
private String hi;
public WEEK(String description,String hi){
this.description=description;
this.hi=hi;
}
public String getDes(){
return this.description+","+this.hi;
}
}
在这个定义中有一些值得注意的地方,实例与定义之间用“;”隔开,下面的定义是一个类的定义。
经过仔细观察之后,enum是一个自定义数据实体类型并指定实例范围的一种数据结构。
它本身是简单的,组合到其他的数据类型或者是使用环境的时候,会发生很奇妙的变化。
例如enumMap, enumSet,多路分发。