Javaでの列挙タイプの使用


Javaには列挙タイプというデータ型がありますが、あまり使われません.実際には、曜日、月、四季などのデータセットを使用する場合、列挙タイプは整数や文字列のマッピングの問題を簡単に解決するだけでなく、プログラムの可読性を大幅に向上させることは間違いありません.
この問題を簡単なプログラムコードで説明します.
1.列挙タイプは自動的に値付けされ、デフォルトでは列挙変数は前から後まで0、1、2、3、4、5…とそれぞれ値付けされ、列挙変数の名前と対応する下付き文字がループで印刷されます.
/*
  * @author mnmlist
  * @date 8/18/2015
  * @description of the basic usage of enum
  */
 enum Color1
 {
	 RED,GREEN,BLUE,PINK;
	 private Color1(){};
	 public static void printAllValues()
	 {
		 for(Color1 color:Color1.values())
		 {
			 System.out.println("Name:"+color+",Index:"+color.ordinal());//     
		 }
	 }
	 public static void printOneValue()
	 {
		 System.out.println("Name:"+RED+",Index:"+RED.ordinal());
	 }
 }
public class EnumDemo
{

	public static void main(String[] args)
	{
//		for(Color color:Color.values())
//			color.printValue();
		System.out.println("Print one value:");
		Color1.printOneValue();
		System.out.println("Print all values:");
		Color1.printAllValues();
	}

}

結果:
Print one value:
Name:RED,Index:0
Print all values:
Name:RED,Index:0
Name:GREEN,Index:1
Name:BLUE,Index:2
Name:PINK,Index:3

2.コンストラクション関数を使用して列挙変数を割り当て、0からではなく任意の整数値から開始できます.
 enum Color
{
	RED(3),YELLOW(5),BLUE(9);
	private int value;
	private Color(){}
	private  Color(int value)
	{
		this.value=value;
	}
	public void printValue()
	{
		
		System.out.println("Name:"+this.name()+",Value:"+this.value);//       
	}
	
}
public class EnumDemo
{

	public static void main(String[] args)
	{
		for(Color color:Color.values())
			color.printValue();
	}

}

結果:
Name:RED,Value:3
Name:YELLOW,Value:5
Name:BLUE,Value:9