개발지/Today I learn
[0807] 자바 컬렉션 1 (열거형)
개발지의 개발자
2023. 8. 8. 00:11
#열거형(Enum)
: 서로 연관된 상수들의 집합
- 상수는 변하지 않는 값(final으로 선언)
- 열거형은 한정된 변하지 않는 데이터를 다루는 데 사용한다.
- 상수 명과 할당된 정수값의 중복을 피하고, 타입 안정성의 문제를 해결할 수 있다.
- switch문과 함께 사용 가능.
eunm Animals {TIGER, DOG, CAT, GUINEAPIG}
public class Main {
public static void main(String[] args) {
Animals animals = Animals.CAT;
switch (seasons) {
case TIGER;
System.out.println("어흥!");
break;
case DOG;
System.out.println("멍멍");
break;
case CAT;
System.out.println("냐옹");
break;
case GUINEAPIG;
System.out.println("꿀꿀");
break;
}
}
}
//출력값
야옹
#열거형의 사용
- 상수는 대문자로 작성한다.
- 각각의 상수들에는 정수값이 자동적으로 할당됨.
- 열거형이름.상수명 을 통해 열거형에 선언된 상수에 접근할 수 있다.
- 열거형을 참조변수에 할당할 수 있다.
enum Animals { TIGER, DOG, CAT, GUINEAPIG }
public class EnumExample {
public static void main(String[] args) {
Animlas favoriteAnimal = Animals.TIGER;
System.out.println(favoriteAnimal); // TIGER
}
}
- 열거형을 참조변수에 할당하고 switch문을 사용하여 해당하는 값을 얻을 수 있다.
enum Level {
LOW, // 자동으로 정수 0 배정
MEDIUM, // 1
HIGH // 2
}
public class Main {
public static void main(String[] args) {
Level level = Level.MEDIUM;
switch(level) {
case LOW:
System.out.println("레벨 1");
break;
case MEDIUM:
System.out.println("레벨 2");
break;
case HIGH:
System.out.println("레벨 3");
break;
}
}
}
// 출력값 : 레벨 2
- 열거형 메서드
리턴 타입 | 메서드(매개변수) | 설명 |
String | name() | 열개 객체가 가지고 있는 문자열을 리턴. 리턴되는 문자열은 열거타입을 정의할 때 사용한 상수 이름과 동일 |
int | ordinal() | 열거 객체의 순번(0부터 시작)을 리턴 |
int | compareTo(비교값) | 주어진 매개 값과 비교해서 순번 차이를 리턴 |
열거 타입 | valueOf(String name) | 주어진 문자열의 열거 객체를 리턴 |
열거 배열 | values() | 모든 열거 객체들을 배열로 리턴 |