목표
자바의 열거형에 대해 학습하세요.
학습할 것 (필수)
- enum 정의하는 방법
- enum이 제공하는 메소드 (values()와 valueOf())
- java.lang.Enum
- EnumSet
enum 정의하는 방법
enum 열거형이름 { 상수명1, 상수명2, ...}
ex)
enum Direction { EAST, SOUTH, WEST, NORTH }
enum이 제공하는 메소드 (values()와 valueOf())
values()
열거형의 모든 상수를 배열에 담아 반환한다.
모든 열거형이 가지고 있는 메소드로 컴파일러가 자동으로 추가해 준다.
Direction [] dArr = Direction.values();
valueOf()
지정된 열거형에서 name과 일치하는 열거형 상수를 반환한다.
Direction d = Direction.valueOf("WEST")
java.lang.Enum
모든 열거형의 조상 클래스이다.
위에서 알아본 values(), valueOf() 메서드와 함께 아래 메서드들이 정의되어있다.
메서드 | 설명 |
Class<E> getDeclaringClass() | 열거형의 Class 객체를 반환한다. |
String name() | 열거형 상수의 이름을 문자열로 반환한다. |
int ordinal() | 열거형 상수가 정의된 순서를 반환한다. |
EnumSet
열거형 타입과 함께 사용하기 위한 특별한 Set 구현체이다.
EnumSet 클래스에는 생성자가 존재하지 않고, abstract 클래스이기 때문에 객체로써 생성 및 사용이 불가능하다.
모든 요소는 단일 열거형 타입이어야 하며 null은 허용되지 않는다.
public static <E extends Enum<E>> EnumSet<E> noneOf(Class<E> elementType) | 비어있는 enum set을 생성 |
public static <E extends Enum<E>> EnumSet<E> allOf(Class<E> elementType) | 매개변수로 받은 타입의 모든 요소(열거형 상수들)를 포함하는 enum set 생성 |
public static <E extends Enum<E>> EnumSet<E> copyOf(EnumSet<E> s) | 매개변수로 받은 EnumSet과 동일한 타입을 사용하여 동일한 요소를 포함하는 enum set 생성 |
public static <E extends Enum<E>> EnumSet<E> copyOf(Collection<E> c) | 매개변수로 받은 Collection으로 초기화 된 enum set 생성 |
public static <E extends Enum<E>> EnumSet<E> complementOf(EnumSet<E> s) | 매개 변수의 EnumSet<E> s 에 포함되어 있지 않은 요소들을 포함하는(차집합) enum set 생성 |
public static <E extends Enum<E>> EnumSet<E> of(E e1) | 매개변수로 받은 요소를 포함하는 열거형 집합을 만듦 |
public static <E extneds Enum<E>> EnumSet<E> range(E from, E to) | 매개변수 from과 to의 범위의 모든 요소를 포함하는 enum set 생성, from, to 포함 |
Reference)
자바의 정석 - 남궁 성
'IT > JAVA' 카테고리의 다른 글
자바 애노테이션 - 백기선님 스터디 12주차 과제 (0) | 2021.04.24 |
---|---|
자바 멀티쓰레드 프로그래밍 - 백기선님 스터디 10주차 과제 (0) | 2021.03.29 |
자바 예외처리 - 백기선님 스터디 9주차 과제 (0) | 2021.03.16 |
자바 인터페이스 - 백기선님 스터디 8주차 과제 (0) | 2021.03.01 |
자바 패키지 - 백기선님 스터디 7주차 과제 (0) | 2021.02.26 |