En este tutorial, aprenderemos sobre la clase Java HashMap y sus diversas operaciones con la ayuda de ejemplos.
La HashMap
clase del marco de colecciones de Java proporciona la funcionalidad de la estructura de datos de la tabla hash.
Almacena elementos en pares clave / valor . Aquí, las claves son identificadores únicos que se utilizan para asociar cada valor en un mapa.
La HashMap
clase implementa la interfaz Map.

Crea un HashMap
Para crear un mapa hash, java.util.HashMap
primero debemos importar el paquete. Una vez que importamos el paquete, así es como podemos crear hashmaps en Java.
// hashMap creation with 8 capacity and 0.6 load factor HashMap numbers = new HashMap();
En el código anterior, hemos creado un mapa hash llamado números. Aquí, K representa el tipo de clave y V representa el tipo de valores. Por ejemplo,
HashMap numbers = new HashMap();
Aquí, el tipo de claves es String
y el tipo de valores es Integer
.
Ejemplo 1: crear HashMap en Java
import java.util.HashMap; class Main ( public static void main(String() args) ( // create a hashmap HashMap languages = new HashMap(); // add elements to hashmap languages.put("Java", 8); languages.put("JavaScript", 1); languages.put("Python", 3); System.out.println("HashMap: " + languages); ) )
Salida
HashMap: (Java = 8, JavaScript = 1, Python = 3)
En el ejemplo anterior, hemos creado HashMap
idiomas con nombre.
Aquí, hemos utilizado el put()
método para agregar elementos al mapa hash. Aprenderemos más sobre el put()
método más adelante en este tutorial.
Operaciones básicas en Java HashMap
La HashMap
clase proporciona varios métodos para realizar diferentes operaciones en hashmaps. En este tutorial veremos algunas operaciones de listas de matrices de uso común:
- Agregar elementos
- Elementos de acceso
- Cambiar elementos
- Quitar elementos
1. Agrega elementos a un HashMap
Para agregar un solo elemento al mapa hash, usamos el put()
método de la HashMap
clase. Por ejemplo,
import java.util.HashMap; class Main ( public static void main(String() args) ( // create a hashmap HashMap numbers = new HashMap(); System.out.println("Initial HashMap: " + numbers); // put() method to add elements numbers.put("One", 1); numbers.put("Two", 2); numbers.put("Three", 3); System.out.println("HashMap after put(): " + numbers); ) )
Salida
HashMap inicial: () HashMap después de put (): (Uno = 1, Dos = 2, Tres = 3)
En el ejemplo anterior, hemos creado HashMap
números con nombre. Aquí, hemos utilizado el put()
método para agregar elementos a los números.
Note la declaración,
numbers.put("One", 1);
Aquí, pasamos el String
valor Uno como clave y el Integer
valor 1 como valor del put()
método.
Lecturas recomendadas
- Java HashMap put ()
- Java HashMap putAll ()
- Java HashMap putIfAbsent ()
2. Accede a los elementos de HashMap
Podemos usar el get()
método para acceder al valor del hashmap. Por ejemplo,
import java.util.HashMap; class Main ( public static void main(String() args) ( HashMap languages = new HashMap(); languages.put(1, "Java"); languages.put(2, "Python"); languages.put(3, "JavaScript"); System.out.println("HashMap: " + languages); // get() method to get value String value = languages.get(1); System.out.println("Value at index 1: " + value); ) )
Salida
HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Valor en el índice 1: Java
En el ejemplo anterior, observe la expresión,
languages.get(1);
Aquí, el get()
método toma la clave como argumento y devuelve el valor correspondiente asociado con la clave.
También podemos acceder a las claves , los valores y clave / valor pares de la HashMap como vistas de conjunto utilizando keySet()
, values()
y entrySet()
métodos respectivamente. Por ejemplo,
import java.util.HashMap; class Main ( public static void main(String() args) ( HashMap languages = new HashMap(); languages.put(1, "Java"); languages.put(2, "Python"); languages.put(3, "JavaScript"); System.out.println("HashMap: " + languages); // return set view of keys // using keySet() System.out.println("Keys: " + languages.keySet()); // return set view of values // using values() System.out.println("Values: " + languages.values()); // return set view of key/value pairs // using entrySet() System.out.println("Key/Value mappings: " + languages.entrySet()); ) )
Salida
HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Claves: (1, 2, 3) Valores: (Java, Python, JavaScript) Asignaciones clave / valor: (1 = Java, 2 = Python, 3 = JavaScript )
En el ejemplo anterior, hemos creado un mapa de hash llamado languages. Aquí, estamos accediendo a las claves , valores y asignaciones clave / valor del mapa hash.
Lecturas recomendadas
- Java HashMap get ()
- Java Hashmap getOrDefault ()
- Java HashMap keySet ()
- Valores de Java HashMap ()
- Java HashMap entrySet ()
3. Cambiar el valor de HashMap
Podemos usar el replace()
método para cambiar el valor asociado con una clave en un mapa hash. Por ejemplo,
import java.util.HashMap; class Main ( public static void main(String() args) ( HashMap languages = new HashMap(); languages.put(1, "Java"); languages.put(2, "Python"); languages.put(3, "JavaScript"); System.out.println("Original HashMap: " + languages); // change element with key 2 languages.replace(2, "C++"); System.out.println("HashMap using replace(): " + languages); ) )
Salida
HashMap original: (1 = Java, 2 = Python, 3 = JavaScript) HashMap usando replace (): (1 = Java, 2 = C ++, 3 = JavaScript)
En el ejemplo anterior, hemos creado un mapa hash llamado languages. Note la expresión,
languages.replace(2, "C++");
Aquí, estamos cambiando el valor al que se refiere la tecla 2 con el nuevo valor C ++.
La HashMap
clase también proporciona algunas variaciones del replace()
método. Para obtener más información, visite
- Java HashMap replace ()
- Java HashMap replaceAll ()
4. Eliminar elementos de HashMap
Para eliminar elementos de un mapa de hash, podemos usar el método remove (). Por ejemplo,
import java.util.HashMap; class Main ( public static void main(String() args) ( HashMap languages = new HashMap(); languages.put(1, "Java"); languages.put(2, "Python"); languages.put(3, "JavaScript"); System.out.println("HashMap: " + languages); // remove element associated with key 2 String value = languages.remove(2); System.out.println("Removed value: " + value); System.out.println("Updated HashMap: " + languages); ) )
Salida
HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Valor eliminado: Python actualizado HashMap: (1 = Java, 3 = JavaScript)
Aquí, el remove()
método toma la clave como parámetro. Luego devuelve el valor asociado con la clave y elimina la entrada .
También podemos eliminar la entrada solo bajo ciertas condiciones. Por ejemplo,
remove(2, "C++");
Here, the remove()
method only removes the entry if the key 2 is associated with the value C++. Since 2 is not associated with C++, it doesn't remove the entry.
To learn more, visit Java HashMap remove().
Other Methods of HashMap
Method | Description |
---|---|
clear() | removes all mappings from the HashMap |
compute() | computes a new value for the specified key |
computeIfAbsent() | computes value if a mapping for the key is not present |
computeIfPresent() | computes a value for mapping if the key is present |
merge() | merges the specified mapping to the HashMap |
clone() | makes the copy of the HashMap |
containsKey() | checks if the specified key is present in Hashmap |
containsValue() | checks if Hashmap contains the specified value |
size() | returns the number of items in HashMap |
isEmpty() | checks if the Hashmap is empty |
Iterate through a HashMap
To iterate through each entry of the hashmap, we can use Java for-each loop. We can iterate through keys only, vales only, and key/value mapping. For example,
import java.util.HashMap; import java.util.Map.Entry; class Main ( public static void main(String() args) ( // create a HashMap HashMap languages = new HashMap(); languages.put(1, "Java"); languages.put(2, "Python"); languages.put(3, "JavaScript"); System.out.println("HashMap: " + languages); // iterate through keys only System.out.print("Keys: "); for (Integer key : languages.keySet()) ( System.out.print(key); System.out.print(", "); ) // iterate through values only System.out.print("Values: "); for (String value : languages.values()) ( System.out.print(value); System.out.print(", "); ) // iterate through key/value entries System.out.print("Entries: "); for (Entry entry : languages.entrySet()) ( System.out.print(entry); System.out.print(", "); ) ) )
Output
HashMap: (1=Java, 2=Python, 3=JavaScript) Keys: 1, 2, 3, Values: Java, Python, JavaScript, Entries: 1=Java, 2=Python, 3=JavaScript,
Note that we have used the Map.Entry
in the above example. It is the nested class of the Map
interface that returns a view (elements) of the map.
We first need to import the java.util.Map.Entry
package in order to use this class.
This nested class returns a view (elements) of the map.
Creating HashMap from Other Maps
In Java, we can also create a hashmap from other maps. For example,
import java.util.HashMap; import java.util.TreeMap; class Main ( public static void main(String() args) ( // create a treemap TreeMap evenNumbers = new TreeMap(); evenNumbers.put("Two", 2); evenNumbers.put("Four", 4); System.out.println("TreeMap: " + evenNumbers); // create hashmap from the treemap HashMap numbers = new HashMap(evenNumbers); numbers.put("Three", 3); System.out.println("HashMap: " + numbers); ) )
Output
TreeMap: (Four=4, Two=2) HashMap: (Two=2, Three=3, Four=4)
In the above example, we have created a TreeMap
named evenNumbers
. Notice the expression,
numbers = new HashMap(evenNumbers)
Here, we are creating a HashMap
named numbers using the TreeMap
. To learn more about treemap, visit Java TreeMap.
Note: While creating a hashmap, we can include optional parameters: capacity and load factor. For example,
HashMap numbers = new HashMap(8, 0.6f);
Here,
- 8 (capacity is 8) - This means it can store 8 entries.
- 0.6f (load factor is 0.6) - This means whenever our hash table is filled by 60%, the entries are moved to a new hash table double the size of the original hash table.
Si no se utilizan los parámetros opcionales, la capacidad predeterminada será 16 y el factor de carga predeterminado será 0,75 .