1.枚举其实都是隐式的继承自java.lang.Enum。有类型安全性、编译期检查以及可将它用在变量声明中的能力,枚举中的各个实例(值)都是被隐式声明为public static final的,也不能将这些声明手动赋予给实例(值),编译器会自己处理。所以比较Enum实际是比较int型,比String快。
2.实例
enum Color
{
GREEN, RED, BLUE
}
int index = Color.GREEN.ordinal();//获取枚举值的下标
Color[] colors = Color.values();//获取所有的枚举值
String name = Color.GREEN.name();//获取实例名
Color aa = Color.valueOf(name);//通过实例名获取枚举实例
//比较两个枚举的方法一 : 比较方式是比较枚举的ordinal
//逻辑表达式方法二 : boolean isEqual = Color.RED == Color.GREEN;
//枚举支持直接用switch作选择
3.示例
public enum Enums
{
SIMPLE1
{
String getInfo()
{
return "aaa";
}
},
SIMPLE2
{
String getInfo()
{
return "bbb";
}
};
abstract String getInfo();
public static void main(String[] args)
{
System.out.println(Enums.SIMPLE1.name());
for (Enums a : values())
{
System.out.println(a.getInfo());
}
}
}
public class Enums2
{
public enum State
{
ON, OFF
}
/**
* TODO 添加方法注释
* @param args
*/
public static void main(String[] args)
{
//打印枚举值
for (State s : State.values())
{
System.out.println(s.name());
}
//枚举与Switch集成
switch (State.ON)
{
case ON:
System.out.println("开");
break;
case OFF:
System.out.println("关");
break;
}
//枚举与Map集成
EnumMap map = new EnumMap(State.class);
map.put(State.ON, "开");
map.put(State.OFF, "关");
for (State s : State.values())
{
System.out.println(s.name() + " " + map.get(s));
}
}
}
2.实例
enum Color
{
GREEN, RED, BLUE
}
int index = Color.GREEN.ordinal();//获取枚举值的下标
Color[] colors = Color.values();//获取所有的枚举值
String name = Color.GREEN.name();//获取实例名
Color aa = Color.valueOf(name);//通过实例名获取枚举实例
//比较两个枚举的方法一 : 比较方式是比较枚举的ordinal
//逻辑表达式方法二 : boolean isEqual = Color.RED == Color.GREEN;
//枚举支持直接用switch作选择
3.示例
public enum Enums
{
SIMPLE1
{
String getInfo()
{
return "aaa";
}
},
SIMPLE2
{
String getInfo()
{
return "bbb";
}
};
abstract String getInfo();
public static void main(String[] args)
{
System.out.println(Enums.SIMPLE1.name());
for (Enums a : values())
{
System.out.println(a.getInfo());
}
}
}
public class Enums2
{
public enum State
{
ON, OFF
}
/**
* TODO 添加方法注释
* @param args
*/
public static void main(String[] args)
{
//打印枚举值
for (State s : State.values())
{
System.out.println(s.name());
}
//枚举与Switch集成
switch (State.ON)
{
case ON:
System.out.println("开");
break;
case OFF:
System.out.println("关");
break;
}
//枚举与Map集成
EnumMap map = new EnumMap(State.class);
map.put(State.ON, "开");
map.put(State.OFF, "关");
for (State s : State.values())
{
System.out.println(s.name() + " " + map.get(s));
}
}
}