EnumMap은 JDK5에 도입되었습니다. Enum을 Map의 키로 사용하도록 설계되었습니다. Map 인터페이스의 구현이기도 합니다. EnumMap의 모든 키는 동일한 열거형 유형이어야 합니다. EnumMap에서 key는 null일 수 없으며 모든 키가 NullPointerException을 발생시킵니다.
자바 문서에 따라 -
EnumMap 내부에서 배열로 사용하는 이 표현은 매우 간결하고 효율적입니다.
HashMap은 Map 인터페이스의 구현이기도 합니다. Key 및 Value 형식으로 데이터를 저장하는 데 사용됩니다. 하나의 null 키와 여러 개의 null 값을 포함할 수 있습니다. HashMap에서 키는 기본 유형이 될 수 없습니다. Java HashMap 구현은 해시 함수가 버킷 간에 요소를 적절하게 분산한다고 가정할 때 기본 작업(get 및 put)에 대해 일정한 시간 성능을 제공합니다.
Sr. 아니요. | 키 | 열거형 맵 | 해시맵 |
---|---|---|---|
1 | 기본 | 열거형 키와 함께 사용하기 위한 특수 맵 구현 | HashMap은 Map 인터페이스의 구현이기도 합니다. |
2 | 널 키 | null 키를 가질 수 없습니다. | 하나의 null 키와 여러 개의 null 값을 가질 수 있습니다. |
3 | 성능 | 모든 작업은 일정한 시간에 실행되므로 HashMap보다 빠릅니다. | HashMap보다 느립니다. |
4. | 내부 구현 | 내부적으로 Array를 사용합니다. | 내부적으로 Hashtable을 사용합니다. |
5. | 주문 | EnumMap은 키의 자연스러운 순서로 키를 저장합니다. | HashMap이 정렬되지 않았습니다. |
EnumMap의 예
import java.util.ArrayList; import java.util.EnumMap; import java.util.List; import java.util.Map; public class EnumMapExample { public enum LaptopEnum { HCL, DELL, IBM }; public static void main(String[] args) { // create enum map EnumMap map = new EnumMap(LaptopEnum.class); map.put(LaptopEnum.HCL, "100"); map.put(LaptopEnum.DELL, "200"); map.put(LaptopEnum.IBM, "300"); // print the map for (Map.Entry m : map.entrySet()) { System.out.println(m.getKey() + " " + m.getValue()); } } }
HashMap의 예
import java.util.ArrayList; import java.util.EnumMap; import java.util.HashMap; import java.util.List; import java.util.Map; public class HashMapExample { public static void main(String[] args) { // create Hash map Map map = new HashMap(); map.put("HCL", "100"); map.put("DELL", "200"); map.put("IBM", "300"); // print the map for (Map.Entry m : map.entrySet()) { System.out.println(m.getKey() + " " + m.getValue()); } } }