EnumMap y HashMap son las clases que implementan la interfaz Map . Pero hay algunas diferencias que existen entre ellos. Así que hemos tratado de enumerar las diferencias entre EnumMap y HashMap.
1. EnumMap : Tipos de enumeración de interfaz de mapa Mapa
- La clase EnumMap es miembro de Java Collections Framework y no está sincronizada.
- EnumMap es una colección ordenada, y se mantienen en el orden natural de sus claves (el orden natural de las claves significa el orden en el que se declaran las constantes de enumeración dentro del tipo de enumeración).
- EnumMap es mucho más rápido que HashMap .
- Todas las claves de cada instancia de EnumMap deben ser claves del mismo tipo de enumeración.
- EnumMap no permite insertar una clave nula si intentamos insertar la clave nula, arrojará NullPointerException .
- EnumMap se representa internamente como arrays, por lo que ofrece el mejor rendimiento.
Demostración de EnumMap:
Java
// Java program to illustrate working // of EnumMap import java.util.*; class EnumMapExample { public enum Days { Sunday, Monday, Tuesday, Wendensday; } public static void main(String[] args) { // Creating an EnumMap of the Days enum EnumMap<Days, Integer> enumMap = new EnumMap<>(Days.class); // Insert using put() method enumMap.put(Days.Sunday, 1); enumMap.put(Days.Monday, 2); enumMap.put(Days.Tuesday, 3); enumMap.put(Days.Wendensday, 4); // Printing size of EnumMap System.out.println("Size of EnumMap: " + enumMap.size()); // Printing the EnumMap for (Map.Entry m : enumMap.entrySet()) { System.out.println(m.getKey() + " " + m.getValue()); } } }
Producción
Size of EnumMap: 4 Sunday 1 Monday 2 Tuesday 3 Wendensday 4
2. HashMap : HashMap como
Java
// Java program to illustrate // the working of HashMap import java.util.*; public class GFG { public static void main(String[] args) { // Create an empty hash map HashMap<Integer, String> map = new HashMap<>(); // Adding elements to the map map.put(10, "Geeks"); map.put(20, "Ram"); map.put(30, "Shyam"); // Printing size of the map System.out.println("Size of map is: " + map.size()); // Iterating the map for (Map.Entry m : map.entrySet()) { System.out.println(m.getKey() + " " + m.getValue()); } } }
Producción
Size of map is: 3 20 Ram 10 Geeks 30 Shyam
EnumMap | mapa hash |
---|---|
EnumMap es una implementación de mapa especializada que usa solo la clave de tipo Enum. | En HashMap, podemos usar Enum y cualquier otro objeto como clave. |
No permite almacenar clave nula. | Permite almacenar las claves nulas y los valores, pero solo debe haber un objeto de clave nula y puede haber cualquier número de valores nulos. |
EnumMap usa internamente la array | HashMap usa internamente HashTable . |
EnumMap es una implementación de mapa especializada que usa solo claves de tipo enumeración . Debido a esto, EnumMap funciona mejor que HashMap. | El rendimiento de HashMap es ligeramente inferior al de EnumMap. |
EnumMap almacena las claves en el orden natural de sus claves (orden en el que se declaran las constantes de enumeración). | En HashMap, sin ordenar las claves. |
Dado que EnumMap usa internamente la array y almacena la clave en su orden natural usando ordinal(), no hay probabilidad de colisión. | HashMap usa hashCode() para almacenar claves y valores, por lo que existe la probabilidad de colisión. |
Publicación traducida automáticamente
Artículo escrito por prashant_srivastava y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA