본문 바로가기

개발지/Today I learn

[0807] 자바 컬렉션 1 (열거형)

#열거형(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() 모든 열거 객체들을 배열로 리턴