Enum
今回はEnum(列挙型)をやります。
引数なし
package test;
import java.util.EnumMap;
public class EnumTest {
public enum EnumPet {
DOG, CAT
}
public static void main(String[] args) {
System.out.println(".values()でループできます。");
for (EnumPet pet : EnumPet.values()) {
String petName = pet.name();
int petIndex = pet.ordinal();
System.out.println(petName);
System.out.println(petIndex);
}
System.out.println("\n.toString()、.name()で文字列に出来ます。");
String string = EnumPet.DOG.toString();
System.out.println(string);
System.out.println("\n.valueOfで文字列からEnumに戻せます。");
String strType = "CAT";
EnumPet cat = EnumPet.valueOf(strType);
System.out.println(cat);
System.out.println("\nEnumMapというEnum専用のMapもあります。");
EnumMap<EnumPet, String> eMap = new EnumMap<>(EnumPet.class);
eMap.put(cat, "猫");
eMap.put(EnumPet.DOG, "犬");
for (EnumPet key : eMap.keySet()) {
System.out.println(eMap.get(key));
}
}
}
Enumはいくつかのメソッドを持ちます。
メソッド | 説明 |
---|---|
.name() | 識別子を文字列で取得する |
.toString() | 識別子を文字列で取得する |
.ordinal() | 識別子の順番(0~)を取得する |
.values() | 識別子の配列を返す。配列は順番順になっている。 |
.valueOf(文字列) | 文字列から識別子を取得する |
またEnumをキーにする専用のEnumMapというMapがあります。これはHashMapより高速に動作するらしいです(ただし保証外)。
実行結果
.values()でループできます。
DOG
0
CAT
1
.toString()、.name()で文字列に出来ます。
DOG
.valueOfで文字列からEnumに戻せます。
CAT
EnumMapというEnum専用のMapもあります。
犬
猫
引数あり
識別子に引数を付けることができます。メソッドを用意し、指定した引数の値を取得することもできます。
package test;
public class EnumTest {
public enum EnumPet {
DOG("inu", "wan"), CAT("neko", "nya");
private String name;
private String koe;
private EnumPet(String name, String koe) {
this.name = name;
this.koe = koe;
}
public String getName() {
return this.name;
}
public String getKoe() {
return this.koe;
}
}
public static void main(String[] args) {
for (EnumPet pet : EnumPet.values()) {
System.out.println("---------");
System.out.println(pet.getName());
System.out.println(pet.getKoe());
}
}
}
実行結果
---------
inu
wan
---------
neko
nya
ページのトップへ戻る