Diferencia entre EnumMap y HashMap

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *