1. enum 정의 방법
2. enum이 제공하는 메소드 (values(), valueOf())
3. java.lang.Enum
4. EnumSet
1. Enum 정의 방법
Enum
- 열거형으로, 서로 관련 있는 상수들을 모아 클래스를 정의하고 활용한다.
Enum 정의
enum Fruits { apple, banana, grape }
Enum 접근
Fruits.apple;
Fruits.banana;
2. enum 메소드
values()
- Enum 클래스에 있는 모든 상수값을 배열로 반환한다.
- Enum 클래스 타입의 객체로 반환한다.
valueOf(String name)
- name과 같은 이름의 상수가 있으면 그 상수 객체를 반환한다.
Fruits.valueOf("apple") // Fruits.apple
Fruits.valueOf("lemon") // IllegalArgumentException
3. java.lang.Enum
- Enum 클래스는 모든 자바 열거형의 조상이다.
- 모든 열거형은 Enum 클래스를 상속받기 때문에 다른 클래스의 상속은 받을 수 없다.
4. EnumSet
- enum 값만 포함할 수 잇고, 모든 값은 같은 enum에 속해야 한다.
- null 값은 추가할 수 없다.
- thread로 부터 안전하지 않아 필요한 경우 외부에서 동기화해야 한다.
- HashSet보다 빠르다.
enum Color {
RED, YELLOW, GREEN, BLUE, BLACK, WHITE
}
public class EnumDemo {
public static void main(String[] args) {
EnumSet<Color> set1, set2, set3, set4, set5;
set1 = EnumSet.allOf(Color.class);
set2 = EnumSet.of(Color.RED, Color.GREEN, Color.BLUE);
set3 = EnumSet.complementOf(set2);
set4 = EnumSet.range(Color.YELLOW, Color.BLACK);
set5 = EnumSet.noneOf(Color.class);
set5.add(Color.BLACK);
set5.add(Color.BLUE);
set5.remove(Color.BLUE);
System.out.println("set1 = " + set1); // set1 = [RED, YELLOW, GREEN, BLUE, BLACK, WHITE]
System.out.println("set2 = " + set2); // set2 = [RED, GREEN, BLUE]
System.out.println("set3 = " + set3); // set3 = [YELLOW, BLACK, WHITE]
System.out.println("set4 = " + set4); // set4 = [YELLOW, GREEN, BLUE, BLACK]
System.out.println("set5 = " + set5); // set5 = [BLACK]
System.out.println(set5.contains(Color.BLACK)); // true
}
}
'Programming > JAVA' 카테고리의 다른 글
Te Java(6) - 스케줄링 알고리즘 구현 (0) | 2023.11.10 |
---|---|
Te JAVA (6) - 어노테이션 (0) | 2023.11.10 |
Te JAVA (5) - 멀티스레드 프로그래밍 (0) | 2023.11.01 |
Te JAVA (5) - 예외 처리 (1) | 2023.11.01 |
Te JAVA (5) - 인터페이스 (1) | 2023.10.31 |