| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
Tags
- 백준
- boot
- Spring
- Web
- nodejs
- kibana
- effective
- jface
- node
- elasticsearch
- Git
- MySQL
- 후기
- 자바
- JPA
- 엘라스틱서치
- 알고리즘
- 자바스크립트
- RCP
- 맛집
- Spring Boot
- java8
- java
- 인터페이스
- javascript
- 독후감
- error
- 스프링
- 이펙티브
- 리뷰
Archives
- Today
- Total
wedul
Enum - 규칙 33 ordinal을 배열 첨자로 사용하는 대신 EnumMap을 이용하라. 본문
반응형
Enum 상수별로 특정정보들을
저장하고 싶을 때 EnumMap을 사용한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Class Fruit { enum Type { APPLE, BANANA, PEAR } final String name; final Type type; Fruit(String name, Type type) { this.name = name; this.type = type; } } Map<Fruit.Type, Set<Fruit>> fruitByType = new EnumMap<Fruit.Type, Set<Fruit>>(Herb.Type.class); for (Fruit.Type t : Fruit.Type.values()) { fruitByType.put(t, new HashSet<Fruit>()); } | cs |
EnumMap을 사용하면 깔끔하고 안전하며, ordinal을 이용해 구현한 프로그램과 성능면에서 더욱 좋다.
ordinal 값을 배열 첨자로 사용하는 것은 적절치 않기 때문에,
EnumMap을 사용하는 것이 좋다.
출처 : 조슈아 블로크, 『 Effective Java 2/E』, 이병준 옮김, 인사이트(2014.9.1), 규칙33 인용.
반응형
'JAVA > Effective Java' 카테고리의 다른 글
| Enum - 규칙 35 작명 패턴 대신 어노테이션을 사용하라. (0) | 2018.05.29 |
|---|---|
| Enum - 규칙 34 확장 가능한 enum을 만들어야 한다면 인터페이스를 이용하라. (0) | 2018.05.29 |
| Enum - 규칙 32 비트 필드(bit field) 대신 EnumSet을 사용하라. (0) | 2018.05.29 |
| Enum - 규칙 31 ordinal 대신 객체 필드를 사용하라. (0) | 2018.05.29 |
| Enum - 규칙 30 int 상수 대신 enum을 사용하라. (0) | 2018.05.29 |
