java基礎(三)之枚舉用法
用法一:常量
public enum Color {
RED,GREEN,RED,YELLOW;
}
用法二:枚舉中自定義方法
/**
* 枚舉中自定義方法
*/
public enum Color {
RED("紅色", 1), GREEN("綠色", 2), BLANK("白色", 3), YELLOW("黃色", 4);
//成員變量
public String name;
public int index;
//構造函數
private Color(String name, int index) {
this.name = name;
this.index = index;
}
//普通方法
public static String getName(int index) {
for (Color c : Color.values()) {
if (c.getIndex() == index) {
return c.name;
}
}
return null;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
}
用法三:switch
public class TrafficLight {
Color signal = Color.RED;
public void change() {
switch (signal) {
case RED:
signal = Color.GREEN;
break;
case GREEN:
signal = Color.YELLOW;
break;
case YELLOW:
signal = Color.RED;
break;
}
}
}
用法四:枚舉實現接口
枚舉繼承了java.lang.Enum.java不支持多繼承,但枚舉能夠實現接口。
用法五:枚舉集合
枚舉集合有EnumMap與EnumSet兩種,EnumMap集合中的key值是枚舉,value能夠是任何類型,numSet保證集合中的元素不重複。
實例用法:
public static void testEnumMap() {
EnumMap<Light, String> currLight = new EnumMap<Light, String>(Light.class);
currLight.put(Light.GREEN, "綠燈");
currLight.put(Light.RED, "紅燈");
currLight.put(Light.YELLOW, "黃燈");
for (Light aLight : Light.values()) {
System.out.println("[key=" + aLight.name() + ",value="
+ currLight.get(aLight) + "]");
}
}java