티스토리 뷰

[목표]

자바의 열거형에 대해 학습하기

 

[학습할 것]

  • enum을 정의하는 방법

  • enum이 제공하는 메소드 (values()와 valueOf())

  • java.lang.Enum

  • EnumSet

1. enum을 정의하는 방법

한정된 값만 가진 데이터를 열거 타입이라고 하며 요일이나 계절과 같은 것이 열거 타입에 해당될 수 있다.열거 타입(enumeration type)을 선언하기 위해서는 열거 타입 소스 파일을 생성해주어야 한다.관례적으로 열거 타입의 이름은 첫 문자를 대문자로 생성한다.

public enum Week {
	MONDAY,
	TUESDAY,
	WEDNESDAY,
	THURSDAY,
	FRIDAY,
	SATURDAY,
	SUNDAY
}

 Enum을 사용하게 되면 타입을 통일할 수 있고 코드가 단순하고 가독성이 좋아지게 된다.

 

2. enum이 제공하는 메소드  (values()와 valueOf())

- values() : 모든 열거형 상수를 배열로 리턴

public class demo {
    public static void main(String[] args) {
        Week[] week = Week.values();
        
        for (Week day : week) {
        	System.out.println(day);
        }
    }
}

- valueOf() : 열거형의 name과 일치하는 열거형 상수를 리턴

public class demo {
    public static void main(String[] args) {
       System.out.println(
    }
}

 

3. java.lang.Enum

Enum 클래스는 모든 자바 열거체의 공통된 조상 클래스로 Enum 클래스에는 열거체를 조작하기 위한 다양한 메소드가 존재한다.

대표적인 Enum 클래스의 메소드는 다음과 같다.

메소드 설명
static E values() 해당 열거체의 모든 상수를 저장한 배열을 생성하여 반환
static E valueOf(String name) 전달된 문자열과 일치하는 해당 열거체의 상수를 반환
protected void finalize() 해당 Enum 클래스가 final 메소드를 가질 수 없는 상태
String name() 해당 열거체 상수의 이름을 반환
int ordinal() 해당 열거체 상수가 열거체 정의에서 정의된 순서
(0부터 시작)를 반환

 

4. EnumSet

자바의 EnumSet은 Set 인터페이스를 기반으로 하면서 Enum 클래스의 상수로 구현된 것이다.

여기서 Set 인터페이스란 데이터를 중복으로 저장할 수 없고 순서가 보장되지 않는 자료구조를 말한다.

 

다른 컬렉션들과 다르게 EnumSet의 경우, new 연산자를 사용할 수 없다.

import java.util.EnumSet;
enum Fruit {
	APPLE, BANANA, ORANGE, WATERMELON, STRAWBERRY;
}

public class EnumSetExample {
 
    public static void main(String[] args){
        
        EnumSet<Fruit> enumSet = EnumSet.allOf(Fruit.class);
        
        System.out.println("Fruit : " + enumSet);
    }    
}

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함