티스토리 뷰
728x90
반응형
EnumSet
- 키로 enum 상수를 사용
- enum 상수를 기반으로 하므로 효율적으로 동작
- 키 집합이 고정되어 있으므로 메모리 사용이 효율적
- 키가 해당 enum의 상수와 일치하는 경우 비트 벡터로 구현되어 있어 공간 효율적
- null 값을 허용하지 않는다
- 열거 순서(iterator order)는 해당 enum의 상수가 선언된 순서
enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
public static Day WEEKEND_DAY = EnumSet.of(SATURDAY, SUNDAY);
EnumMap
- 키로 enum 상수를 사용
- enum 상수를 기반으로 하므로, 키의 순서가 고정되어 있고 연속적
- enum 상수를 사용할 때 빠른 검색과 삽입이 가능
- 키 집합이 고정되어 있으므로 메모리 사용이 효율적
- null 값을 허용하지 않는다
- 열거 순서(iterator order)는 해당 enum의 상수가 선언된 순서
enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
public class Main {
public static void main(String[] args) {
EnumMap<Day, List<String>> scheduleMap = new EnumMap<>(Day.class);
for (Day day : Day.values()) {
// 각 요일에 대한 빈 리스트를 생성하여 EnumMap에 추가
scheduleMap.put(day, new ArrayList<>());
}
// 요일별 스케줄에 항목 추가
scheduleMap.get(Day.MONDAY).add("Morning Meeting");
scheduleMap.get(Day.MONDAY).add("Afternoon Planning");
scheduleMap.get(Day.TUESDAY).add("Gym Workout");
scheduleMap.get(Day.TUESDAY).add("Client Meeting");
// 나머지 요일에 대한 항목 추가 가능
// 요일별 스케줄 출력
for (Day day : Day.values()) {
List<String> daySchedule = scheduleMap.get(day);
System.out.println(day + "'s Schedule: " + daySchedule);
}
}
}
728x90
반응형
'Java' 카테고리의 다른 글
[Java] Java 동시성 (0) | 2023.11.20 |
---|---|
[Java] Executor (0) | 2023.11.20 |
[Java] 날짜, 시간 API (0) | 2023.10.18 |
[Java] Lambda 표현식으로 리펙토링 (1) | 2023.10.12 |
[Java] Lombok @Getter boolean 변수명 주의할 점 (0) | 2023.09.26 |
반응형
300x250