¿Qué es Hashmap en Java? Explicado con ejemplos

Publicado: 2021-07-02

HashMap es una clase de colección en Java. Puede usarlo para almacenar pares de clave y valor. Su rendimiento depende de la capacidad inicial y del factor de carga. HashMap tiene varios métodos que le permiten usar su estructura de datos de tabla hash.

En el siguiente artículo, exploraremos qué es HashMap y aprenderemos sobre sus diversos constructores a través de ejemplos.

Tabla de contenido

¿Qué es Hash Map?

HashMap es una clase de colección basada en Map. Lo usamos para almacenar pares de clave y valor. Denota un HashMap Java como HashMap<K, V>, donde K representa Clave y V representa Valor.

HashMap es similar a la clase Hashtable. La diferencia entre los dos es que HashMap no está sincronizado mientras que Hashtable no lo está. Además, a diferencia de Hashtable, HashMap permite valores nulos y la clave nula.

Dado que HashMap no es una colección ordenada, no devuelve las claves y los valores en el orden en que los inserta. Además, HashMap no ordena las claves y los valores almacenados. Si desea utilizar la clase HashMap y sus métodos, deberá importar java.util.HashMap (o su superclase).

HashMap le brinda una implementación simple de la interfaz Map de Java. Puede acceder a los pares clave-valor que almacena a través de HashMap utilizando un índice de otro tipo (como un número entero). Tenga en cuenta que si usa una clave duplicada, reemplaza el elemento de la clave relevante. Además, solo puede usar un objeto de clave nula; sin embargo, puede haber cualquier número de valores nulos.

HashMap implementa interfaces Cloneable, Serializable, Map<K, V>. Extiende la clase AbstractMap<K, V> y sus subclases directas son PrinterStateReasons y LinkedHashMap.

Características de HashMap

Las siguientes son las características principales de HashMap:

  • Es un componente del paquete java.util.
  • Puede usar valores duplicados, pero HashMap no permite claves duplicadas. Significa que una clave no puede tener varios valores, pero varias claves pueden tener un solo valor.
  • Puede usar claves nulas solo una vez, pero puede usar varios valores nulos.
  • HashMap no ofrece garantías con respecto al orden del mapa. Por lo tanto, no garantiza si el orden se mantendrá constante.
  • HashMap es muy similar a Hashtable, con la única diferencia de que HashMap no está sincronizado.
  • HashMap implementa una interfaz serializable y clonable.

Constructores de HashMap

Hay cuatro constructores en HashMap:

1. Mapa hash()

HashMap() es el constructor predeterminado que crea una instancia con un factor de carga de 0,75 y una capacidad inicial de 16.

Ejemplo :

// Mostrando cómo funciona el constructor HashMap()

importar java.io.*;

importar java.util.*;

clase AddElementsToHashMap {

public static void main(String args[])

{

// No tienes que mencionar el

// Tipo genérico dos veces

HashMap<Integer, String> hm1 = new HashMap<>();

// Usando Generics para inicializar HashMap

HashMap<Entero, Cadena> hm2

= new HashMap<Entero, Cadena>();

// Usa el método put para agregar cualquier elemento

hm1.put(1, “A”);

hm1.put(2, “B”);

hm1.put(3, “C”);

hm2.put(4, "D");

hm2.put(5, "E");

hm2.put(6, "F");

System.out.println(“Los resultados de hm1 son: “

+ hm1);

System.out.println(“Los resultados de HashMap hm2 son: “

+ hm2);

}

}

Salida :

Los resultados de hm1 son: {1=A, 2=B, 3=C}

Los resultados de hm2 son: {4=D, 5=E, 6=F}

2. HashMap (capacidad inicial int)

HashMap(int initialCapacity) crearía una instancia con una carga de 0,75 y una capacidad inicial específica.

Ejemplo :

// Mostrando cómo funciona el constructor HashMap(int initialCapacity)

importar java.io.*;

importar java.util.*;

clase AddElementsToHashMap {

public static void main(String args[])

{

// No tienes que mencionar el

// Tipo genérico dos veces

HashMap<Integer, String> hm1 = new HashMap<>(10);

// Usando Generics para inicializar HashMap

HashMap<Entero, Cadena> hm2

= new HashMap<Entero, Cadena>(2);

// Usa el método put para agregar cualquier elemento

hm1.put(1, “A”);

hm1.put(2, “B”);

hm1.put(3, “C”);

hm2.put(4, "D");

hm2.put(5, "E");

hm2.put(6, "F");

System.out.println(“Los resultados de hm1 son: “

+ hm1);

System.out.println(“Los resultados de HashMap hm2 son: “

+ hm2);

}

}

Salida :

Los resultados de hm1 son: {1=A, 2=B, 3=C}

Los resultados de hm2 son: {4=D, 5=E, 6=F}

3. HashMap(int initialCapacity, float factor de carga)

HashMap(int initialCapacity, float loadFactor) genera una instancia con un factor de carga y una capacidad inicial específicos.

Ejemplo :

// Mostrando cómo funciona HashMap(int initialCapacity, float loadFactor) Constructor

importar java.io.*;

importar java.util.*;

clase AddElementsToHashMap {

public static void main(String args[])

{

// No tienes que mencionar el

// Tipo genérico dos veces

HashMap<Entero, Cadena> hm1

= nuevo HashMap<>(5, 0.75f);

// Usando Generics para inicializar el HashMap

HashMap<Entero, Cadena> hm2

= new HashMap<Entero, Cadena>(3, 0.5f);

// Usa el método put para agregar elementos

hm1.put(1, “A”);

hm1.put(2, “B”);

hm1.put(3, “C”);

hm2.put(4, "D");

hm2.put(5, "E");

hm2.put(6, "F");

System.out.println(“Los resultados de hm1 son: “

+ hm1);

System.out.println(“Los resultados de HashMap hm2 son: “

+ hm2);

}

}

Salida :

Los resultados de hm1 son: {1=A, 2=B, 3=C}

Los resultados de hm2 son: {4=D, 5=E, 6=F}

4. HashMap (mapa de mapa)

HashMap (mapa de mapa) crearía una instancia con las mismas asignaciones que el mapa que especifique.

Ejemplo :

// Mostrando cómo funciona el constructor HashMap (mapa de mapa)

importar java.io.*;

importar java.util.*;

clase AddElementsToHashMap {

public static void main(String args[])

{

// No tienes que mencionar el

// Tipo genérico dos veces

Map<Integer, String> hm1 = new HashMap<>();

// Usando Generics para inicializar HashMap

HashMap<Entero, Cadena> hm2

= new HashMap<Entero, Cadena>(hml);

// Usa el método put para agregar cualquier elemento

hm1.put(1, “A”);

hm1.put(2, “B”);

hm1.put(3, “C”);

hm2.put(4, "D");

hm2.put(5, "E");

hm2.put(6, "F");

System.out.println(“Los resultados de hm1 son: “

+ hm1);

System.out.println(“Los resultados de HashMap hm2 son: “

+ hm2);

}

}

Salida :

Los resultados de hm1 son: {1=A, 2=B, 3=C}

Los resultados de hm2 son: {4=D, 5=E, 6=F}

Más información sobre Java

Java tiene muchas clases además de HashMap. Aprender por sí mismo sobre el meollo de cada una de esas clases, sus usos y la integración en Java es bastante desafiante. La mejor manera de realizar este proceso es tomando un curso de informática.

Tomar un curso profesional te permitirá dominar las habilidades y los conceptos necesarios a través de un plan de estudios estructurado. Además, dichos cursos ofrecen una experiencia de aprendizaje inmersiva facilitada por videos, sesiones en vivo y conferencias en línea que facilitan la comprensión de los fundamentos teóricos.

Puede consultar nuestro programa de Maestría en Ciencias en Ciencias de la Computación que se ofrece en asociación con LJMU (Universidad John Moores de Liverpool, Reino Unido) y IIIT-B (Instituto Internacional de Tecnología de la Información, India). El curso cubre más de 500 horas de contenido, más de 10 conferencias en vivo y más de 30 estudios de casos.

Este curso de 19 meses promete una experiencia de aprendizaje global y altamente orientada al valor. El mayor valor agregado radica en el hecho de que puede conectarse e interactuar con pares de todo el mundo. upGrad se jacta de tener más de 40,000 estudiantes globales pagados repartidos en más de 85 países. Como resultado, está expuesto a nuevas culturas, nuevas opiniones y nuevas perspectivas que amplían su perspectiva general. No solo eso, está capacitado por mentores expertos de LJMU y IIIT-B que brindan asistencia dedicada y personalizada para ayudarlo a resolver sus dudas.

Junto con estas ventajas, este programa le brindará asistencia profesional de 360 ​​grados que incluye tutoría en la industria, oportunidades para establecer contactos y mucho más.

Conclusión

En este artículo, aprendimos qué es HashMap, sus diferentes constructores y cómo puedes implementarlos a través de ejemplos. HashMap tiene un montón de aplicaciones en Java: puede usar HashMap para agregar elementos, eliminarlos y administrarlos según sea necesario.

¿Qué piensas sobre esta guía en HashMap? Compártalos en la sección de comentarios a continuación.

Mejore sus habilidades y prepárese para el futuro

Solicite ahora el curso de ingeniería de software de LJMU