JAVA - EnumMap

개발자 이상규·2022년 4월 3일

EnumMap은 Map interface의 구현체입니다.
key값으로 enum이 들어가야 합니다.

enum Status {
    STOP, START, PAUSE
}

Map<Status, String> enumMap = new EnumMap<>(Status.class); 

Hash는 다른 방식보다도 검색에 빠르지만 해싱 작업이 필요합니다.
하지만 enum은 싱글톤으로 단일 객체임을 보장할 수 있기 때문에 이러한 작업이 필요 없습니다.

장점

속도가 빠르다

천만번 가져오는 과정을 10번 반복할시
HashMap은 보통 24,000,000 nano초
EnumMap은 보통 16,000,000 nano초
가 소요되었습니다. EnumMap이 HashMap보다 1.5배 정도 빠르다는 것을 확인할 수 있었습니다.

순서가 정해져 있다.

EnumMap은 TreeMap의 장점도 가지고 있습니다. 순서를 기억한다는 점입니다. 단, 여기서 말하는 순서는 사용자가 입력한 순서가 아니라 Enum에 명시되어 있는 순서를 말합니다.
이미 순서가 정해져 있기 때문에, TreeMap처럼 정렬된다 하더라도 입력 시 성능이 우수합니다.

Map의 key값이 enum이라면 EnumMap을 사용해야합니다.
HashMap보다 빠르고 TreeMap처럼 순서도 기억합니다.







reference

profile
Contact: leeeesanggyu@gmail.com

0개의 댓글