EnumSet이 추상 클래스로 구현되고 EnumMap이 구체적인 클래스로 구현 된 이유가 무엇입니까? 64 개 이하의 요소 (long
으로 저장된 세트의 값의 존재를 나타내는 플래그)와, 다른 열거 (플래그 long[]
로 저장)에 대한 또 하나 열거 하나 -EnumSet이 추상 클래스로 구현되고 EnumMap이 구체적 클래스로 구현되는 이유는 무엇입니까?
23
A
답변
25
EnumSet
실제로 두 가지 구현을 갖는다. EnumSet
반환의 공장 방법 중 하나가 전달 열거 클래스에 따라 달라집니다. (값을 저장하는 배열이 어쨌든 필요하기 때문에)
이러한 최적화 EnumMap
에 대한 이해가되지 않습니다 따라서 EnumMap
는 구체적인 클래스입니다.
6
EnumSet
은 열거 형 (64 개의 요소가 임계 값 임)에 따라 RegularEnumSet
및 JumboEnumSet
의 두 가지 구현을 사용합니다. 팩토리 메소드는 적절한 구현에 위임합니다.
EnumMap
은 모든 열거 형 (모든 열거 형 항목의 배열과 값의 동일한 크기 배열)을 유지하므로 추상 클래스가 필요하지 않습니다.
관련 문제
- 1. STL 추상 클래스로 정렬
- 2. 추상 클래스로 변환 할 수있는 이유
- 3. 추상 클래스로 엔티티 프레임 워크 사용
- 4. 제네릭 메서드 구현을 추상 수퍼 클래스로 이동
- 5. ClassCastException - 검색된 JPA 객체를 구체적 클래스로 캐스트하려고 시도합니다.
- 6. 구조체를 클래스로 이동하는 방법은 무엇입니까?
- 7. VS.NET은 개인 클래스로 기본 설정됩니다.
- 8. system.servicemodel 클래스로 디버깅하는 방법은 무엇입니까?
- 9. 알고리즘을 클래스로 캡슐화하기
- 10. 추상 메서드가없는 경우에도 클래스를 추상 클래스로 만들 수 있습니까? 그렇다면 사용법은 무엇입니까?
- 11. S4 클래스로 오류 처리
- 12. 추상 필드가 아닌 이유는 무엇입니까?
- 13. 클래스를 하위 클래스로 분할
- 14. PngBitmapEncoder 클래스로 인해 이미지가 거칠게 보이게하는 이유는 무엇입니까?
- 15. Actionscript에서 하위 클래스로 캐스팅
- 16. Java 클래스에서 C# 클래스로
- 17. 변수를 PHP 클래스로 선언합니다.
- 18. 이클립스가 android에서 클래스로 들어가기
- 19. 문자열을 클래스로 변환
- 20. 다른 클래스로 요청 리디렉션
- 21. domDocument 클래스로 단어 계산하기
- 22. 문자열을 TitleWindow 클래스로 변환하십시오.
- 23. 별도의 클래스로 전환 지정하기
- 24. 제네릭 및 클래스로 고생
- 25. 내부 클래스로 BroadcastReceiver
- 26. PHP 클래스로 작업하는 AJAX
- 27. @Resource를 일반 클래스로 삽입
- 28. 여러 클래스로 클래스 확장하기
- 29. FileHelper 클래스로 RecordString 저장
- 30. ERD에서 코드 퍼스트 클래스로
확인. 그것은 당장 의미가 있습니다 :) –