자바 스터디
11주차 과제: Enum
삶은겨란
2022. 6. 11. 02:41
목표
자바의 열거형에 대해 학습하세요.
목차
1. enum 정의하는 방법
2. enum이 제공하는 메소드 (values()와 valueOf())
3. java.lang.Enum
4. EnumSet
1. enum 정의하는 방법
(1) enum(열거형)
서로 연관된 상수들의 집합
import java.util.Scanner;
enum season{spring, summer, fall, winter} // enum 정의
public class EnumTest {
public static void main(String[] args) {
int month;
Scanner sc = new Scanner(System.in);
month=sc.nextInt();
if(month>=3&month<=5){
System.out.println(season.spring);
}
else if(month>=6&month<=8){
System.out.println(season.summer);
}
else if(month>=9&month<=11){
System.out.println(season.fall);
}
else{
System.out.println(season.winter);
}
}
}
2. enum이 제공하는 메소드 (values()와 valueOf())
메소드 | 내용 |
ordinal() | 순서 |
valueOf() | 일치하는 이름을 찾아 리턴 |
values() | enum에 정의된 상수를 배열로 |
name() | 이름 |
enum season{spring, summer, fall, winter} // enum 정의
public class ListNode {
public static void main(String[] args) {
System.out.println(season.winter.ordinal());
for(var s : season.values()){
System.out.println(s.name());
}
season same = season.valueOf("summer");
System.out.println(same);
}
}
3. java.lang.Enum
enum 클래스는 java.lang.Enum 클래스의 자손이다.
4. EnumSet
열거형을 위한 Set 인터페이스 구현체
특징(https://www.geeksforgeeks.org/enumset-class-java/)
- AbstractSet 클래스를 상속하고 자바의 Set 인터페이스를 구현
- EnumSet 클래스는 java collection frameword의 멤버이며 동기화되지 않는다.
- 고성능 set 구현체이며 HashSet보다 빠르다.
- EnumSet의 모든 요소는 set이 명시적, 암묵적으로 생성될 때 지정된 단일 열거형 타입에서 가져와야 한다.
- null을 허용하지 않는다.
public abstract class EnumSet<E extends Enum<E>>
https://www.geeksforgeeks.org/enumset-class-java/
명품 JAVA Programming/황기태,김효수