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());
}
}
}