본문 바로가기
Language/자바

enumMap, enumSet 에 대해 간략히 알아보자.

by 띵커베르 2023. 1. 19.
728x90
  • enumMap? enumSet?
    • enumMap, enumSet 도 Map, Set 인터페이스를 구현한다.
    • 사용하려면 key 값으로 enum 이 있어야 하는 제약이 있음.
    • null 을 추가할 수 없음
  • enumMap 은 map 처럼 같지만 enum 타입을 키로 사용하는데 특화됨
  • hashMap 은 키를 해싱해서 저장하지만 enumMap은 enum 상수를 인덱스로 사용하기 떄문에 해시충돌도 일어나지않음.
    • put메소드 수행시 key 값에 ordinal 메소드를 통해 index 정보를 가져온다. jpa에서도 본 ordinal (0, 1, 2, 3, 4...)
  • enumMap 은 내부적으로 배열로 구현되어 있기 때문에 접근 속도가 빠르다.
  • enumSet은 다 비슷하지만 내부적으로 키가 있다 없다를 판단하는 지시자가 들어있어 vector 처럼 10101011 로 표현할 수 있다
    • enum 의 원소 수에 따라 구현체가 다르다 long 자료형으로써 long 의 각비트는 enum 값을 나타냄
    • 64비트 == 64개 원소저장 RegularEnumSet 
    • 64개 초과며 JumboEnumSEt
  • 찾다가 좋은 블로그 발견 감사드린다.
728x90

댓글