Enumeration은 배열같으면서도 Map이랑 비슷한 느낌도 있다.
사용법을 알아보자
.
.
enum Direction {
EAST, SOUTH, WEST, NORTH
}
public class EnumEx1 {
public static void main(String[] args) {
Direction d1 = Direction.EAST;
Direction d2 = Direction.valueOf("WEST"); // 문자열을 Direction타입의 값으로 변환
// Integer k = Integer.valueOf("1");
Direction d3 = Direction.EAST;
System.out.println("d1 = " + d1);
System.out.println("d2 = " + d2);
System.out.println();
System.out.println("d1 == d2 ? " + (d1 == d2));
System.out.println("d1 == d3 ? " + (d1 == d3));
System.out.println("d1.equals(d3) ? " + d1.equals(d3));
System.out.println("d1.compareTo(d3) ? " + d1.compareTo(d3));
System.out.println();
switch (d1) {
case EAST:
System.out.println("방향이 동쪽입니다. \n");
break;
case SOUTH:
System.out.println("방향이 북쪽입니다. \n");
break;
case WEST:
System.out.println("방향이 서쪽입니다. \n");
break;
case NORTH:
System.out.println("방향이 남쪽입니다. \n");
break;
default:
}
// 열거형의 모든 값을 얻어온다.
Direction[] arr = Direction.values();
for(Direction d : arr) {
System.out.printf("%s = %d \n", d.name(), d.ordinal());
}
}
}
.
.
간단하게 배열이랑 비슷하다고 생각할 수 있다. 하지만 클래스처럼 사용도 가능하다.
.
.
또한 각 열거형 이름에 값을 정해줄 수도 있다.
.
.
enum Direction2{
EAST(1), SOUTH(5), WEST(-1), NORTH(10);
private final int value;
Direction2(int value){
this.value = value;
}
public int getValue() {
return value;
}
}
public class EnumEx2 {
public static void main(String[] args) {
Direction2 d1 = Direction2.EAST;
System.out.printf("d1 = %s, value = %d, ordinal = %d\n", d1.name(), d1.getValue(), d1.ordinal());
}
}
.
.
enum 안에서도 메소드를 선언할 수 있다.
.
.
각 값에 따로 숫자를 정해줄 수 있다.
728x90
반응형
'Java > 본격 Java 컬렉션' 카테고리의 다른 글
[Java] TreeMap 개념 및 실습 (0) | 2020.07.14 |
---|---|
[Java] Map을 이용하여 로그인 시스템 구현하기 (0) | 2020.07.14 |
[Java] HashMap 개념 및 실습 (0) | 2020.07.14 |
[Java] Comparator 개념 및 실습 (0) | 2020.07.14 |
[Java] Comparable 개념 및 실습 (0) | 2020.07.14 |