logo

Mapa Hash de Java

Jerarquía de clases Java HashMap

Java HashMap La clase implementa la interfaz Map que nos permite para almacenar el par clave y valor , donde las claves deben ser únicas. Si intenta insertar la clave duplicada, reemplazará el elemento de la clave correspondiente. Es fácil realizar operaciones utilizando el índice clave como actualización, eliminación, etc. La clase HashMap se encuentra enjava.utilpaquete.

HashMap en Java es como la clase Hashtable heredada, pero no está sincronizada. También nos permite almacenar los elementos nulos, pero solo debe haber una clave nula. Desde Java 5, se denota comoHashMap, donde K representa clave y V valor. Hereda la clase AbstractMap e implementa la interfaz Map.

Puntos para recordar

  • Java HashMap contiene valores basados ​​en la clave.
  • Java HashMap contiene solo claves únicas.
  • Java HashMap puede tener una clave nula y varios valores nulos.
  • Java HashMap no está sincronizado.
  • Java HashMap no mantiene ningún orden.
  • La capacidad inicial predeterminada de la clase Java HashMap es 16 con un factor de carga de 0,75.

Jerarquía de la clase HashMap

Como se muestra en la figura anterior, la clase HashMap extiende la clase AbstractMap e implementa la interfaz Map.

Declaración de clase HashMap

Veamos la declaración de la clase java.util.HashMap.

variables nginx
 public class HashMap extends AbstractMap implements Map, Cloneable, Serializable 

Parámetros de la clase HashMap

Veamos los parámetros de la clase java.util.HashMap.

    k: Es el tipo de claves que mantiene este mapa.EN: Es el tipo de valores mapeados.

Constructores de la clase Java HashMap

ConstructorDescripción
Mapa Hash()Se utiliza para construir un HashMap predeterminado.
HashMap(Mapa m)Se utiliza para inicializar el mapa hash utilizando los elementos del objeto de mapa m dado.
HashMap (capacidad interna)Se utiliza para inicializar la capacidad del mapa hash al valor entero dado, capacidad.
HashMap (capacidad int, factor de carga flotante)Se utiliza para inicializar tanto la capacidad como el factor de carga del mapa hash mediante el uso de sus argumentos.

Métodos de la clase Java HashMap

MétodoDescripción
vacío claro()Se utiliza para eliminar todas las asignaciones de este mapa.
booleano está vacío()Se utiliza para devolver verdadero si este mapa no contiene asignaciones clave-valor.
Clon de objeto()Se utiliza para devolver una copia superficial de esta instancia de HashMap: las claves y los valores en sí no se clonan.
Establecer entradaSet()Se utiliza para devolver una vista de colección de las asignaciones contenidas en este mapa.
Establecer conjunto de claves()Se utiliza para devolver una vista establecida de las claves contenidas en este mapa.
V put(Clave del objeto, Valor del objeto)Se utiliza para insertar una entrada en el mapa.
void putAll(Mapa mapa)Se utiliza para insertar el mapa especificado en el mapa.
V putIfAbsent (tecla K, valor V)Inserta el valor especificado con la clave especificada en el mapa solo si aún no está especificado.
V eliminar (clave de objeto)Se utiliza para eliminar una entrada para la clave especificada.
eliminación booleana (clave del objeto, valor del objeto)Elimina los valores especificados con las claves especificadas asociadas del mapa.
V cálculo (tecla K, función de reasignación BiFunction)Se utiliza para calcular una asignación para la clave especificada y su valor asignado actual (o nulo si no hay una asignación actual).
V ComputeIfAbsent (tecla K, función de mapeo de funciones)Se utiliza para calcular su valor utilizando la función de mapeo dada, si la clave especificada aún no está asociada con un valor (o está asignada a nulo), y la ingresa en este mapa a menos que sea nula.
V ComputeIfPresent (tecla K, función de reasignación BiFunction)Se utiliza para calcular una nueva asignación dada la clave y su valor asignado actual si el valor de la clave especificada está presente y no es nulo.
booleano contieneValor(Valor del objeto)Este método devuelve verdadero si existe algún valor igual al valor dentro del mapa; de lo contrario, devuelve falso.
booleano contiene clave (clave de objeto)Este método devuelve verdadero si existe alguna clave igual a la clave dentro del mapa; de lo contrario, devuelve falso.
booleano es igual (Objeto o)Se utiliza para comparar el objeto especificado con el mapa.
anular para cada uno (acción BiConsumer)Realiza la acción dada para cada entrada en el mapa hasta que se hayan procesado todas las entradas o la acción genere una excepción.
V get (clave de objeto)Este método devuelve el objeto que contiene el valor asociado con la clave.
V getOrDefault(Clave de objeto, V defaultValue)Devuelve el valor al que está asignada la clave especificada, o defaultValue si el mapa no contiene ninguna asignación para la clave.
booleano está vacío()Este método devuelve verdadero si el mapa está vacío; devuelve falso si contiene al menos una clave.
Combinación de V (tecla K, valor V, función de reasignación BiFunction)Si la clave especificada aún no está asociada con un valor o está asociada con un valor nulo, la asocia con el valor no nulo dado.
Reemplazo de V (tecla K, valor V)Reemplaza el valor especificado por una clave especificada.
reemplazo booleano (tecla K, V oldValue, V newValue)Reemplaza el valor anterior con el nuevo valor para una clave especificada.
anular reemplazar todo (función BiFunction)Reemplaza el valor de cada entrada con el resultado de invocar la función dada en esa entrada hasta que se hayan procesado todas las entradas o la función arroje una excepción.
Valores de colección()Devuelve una vista de colección de los valores contenidos en el mapa.
tamaño entero()Este método devuelve el número de entradas en el mapa.

Ejemplo de mapa hash de Java

Veamos un ejemplo simple de HashMap para almacenar pares de clave y valor.

 import java.util.*; public class HashMapExample1{ public static void main(String args[]){ HashMap map=new HashMap();//Creating HashMap map.put(1,'Mango'); //Put elements in Map map.put(2,'Apple'); map.put(3,'Banana'); map.put(4,'Grapes'); System.out.println('Iterating Hashmap...'); for(Map.Entry m : map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } } 
Pruébalo ahora
 Iterating Hashmap... 1 Mango 2 Apple 3 Banana 4 Grapes 

En este ejemplo, estamos almacenando Integer como clave y String como valor, por lo que estamos usandoHashMapcomo el tipo. Elponer()El método inserta los elementos en el mapa.

Para obtener los elementos clave y valor, debemos llamar a los métodos getKey() y getValue(). ElMapa.EntradaLa interfaz contiene el obtener la clave() y obtenerValor() métodos. Pero deberíamos llamar al método EntrySet() de la interfaz Map para obtener la instancia de Map.Entry.

Sin clave duplicada en HashMap

No puede almacenar claves duplicadas en HashMap. Sin embargo, si intenta almacenar una clave duplicada con otro valor, reemplazará el valor.

 import java.util.*; public class HashMapExample2{ public static void main(String args[]){ HashMap map=new HashMap();//Creating HashMap map.put(1,'Mango'); //Put elements in Map map.put(2,'Apple'); map.put(3,'Banana'); map.put(1,'Grapes'); //trying duplicate key System.out.println('Iterating Hashmap...'); for(Map.Entry m : map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } } 
Pruébalo ahora
 Iterating Hashmap... 1 Grapes 2 Apple 3 Banana 

Ejemplo de Java HashMap para agregar () elementos

Aquí vemos diferentes formas de insertar elementos.

 import java.util.*; class HashMap1{ public static void main(String args[]){ HashMap hm=new HashMap(); System.out.println('Initial list of elements: '+hm); hm.put(100,'Amit'); hm.put(101,'Vijay'); hm.put(102,'Rahul'); System.out.println('After invoking put() method '); for(Map.Entry m:hm.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } hm.putIfAbsent(103, 'Gaurav'); System.out.println('After invoking putIfAbsent() method '); for(Map.Entry m:hm.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } HashMap map=new HashMap(); map.put(104,'Ravi'); map.putAll(hm); System.out.println('After invoking putAll() method '); for(Map.Entry m:map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } } 
 Initial list of elements: {} After invoking put() method 100 Amit 101 Vijay 102 Rahul After invoking putIfAbsent() method 100 Amit 101 Vijay 102 Rahul 103 Gaurav After invoking putAll() method 100 Amit 101 Vijay 102 Rahul 103 Gaurav 104 Ravi 

Ejemplo de Java HashMap para eliminar elementos ()

Aquí vemos diferentes formas de eliminar elementos.

 import java.util.*; public class HashMap2 { public static void main(String args[]) { HashMap map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); map.put(103, 'Gaurav'); System.out.println('Initial list of elements: '+map); //key-based removal map.remove(100); System.out.println('Updated list of elements: '+map); //value-based removal map.remove(101); System.out.println('Updated list of elements: '+map); //key-value pair based removal map.remove(102, 'Rahul'); System.out.println('Updated list of elements: '+map); } } 

Producción:

 Initial list of elements: {100=Amit, 101=Vijay, 102=Rahul, 103=Gaurav} Updated list of elements: {101=Vijay, 102=Rahul, 103=Gaurav} Updated list of elements: {102=Rahul, 103=Gaurav} Updated list of elements: {103=Gaurav} 

Ejemplo de Java HashMap para reemplazar elementos ()

Aquí vemos diferentes formas de reemplazar elementos.

 import java.util.*; class HashMap3{ public static void main(String args[]){ HashMap hm=new HashMap(); hm.put(100,'Amit'); hm.put(101,'Vijay'); hm.put(102,'Rahul'); System.out.println('Initial list of elements:'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } System.out.println('Updated list of elements:'); hm.replace(102, 'Gaurav'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } System.out.println('Updated list of elements:'); hm.replace(101, 'Vijay', 'Ravi'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } System.out.println('Updated list of elements:'); hm.replaceAll((k,v) -> 'Ajay'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } } } 
 Initial list of elements: 100 Amit 101 Vijay 102 Rahul Updated list of elements: 100 Amit 101 Vijay 102 Gaurav Updated list of elements: 100 Amit 101 Ravi 102 Gaurav Updated list of elements: 100 Ajay 101 Ajay 102 Ajay 

Diferencia entre HashSet y HashMap

HashSet contiene solo valores, mientras que HashMap contiene una entrada (clave y valor).

Ejemplo de Java HashMap: libro

 import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class MapExample { public static void main(String[] args) { //Creating map of Books Map map=new HashMap(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to map map.put(1,b1); map.put(2,b2); map.put(3,b3); //Traversing map for(Map.Entry entry:map.entrySet()){ int key=entry.getKey(); Book b=entry.getValue(); System.out.println(key+' Details:'); System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } } 
Pruébalo ahora

Producción:

10 de 50.00
 1 Details: 101 Let us C Yashwant Kanetkar BPB 8 2 Details: 102 Data Communications and Networking Forouzan Mc Graw Hill 4 3 Details: 103 Operating System Galvin Wiley 6 

Temas relacionados

Cómo iterar el mapa en Java

Cómo ordenar HashMap en Java

Factor de carga en HashMap

Funcionamiento de HashMap en Java | Cómo funciona HashMap

Diferencia entre HashMap y Hashtable

Cómo ordenar HashMap por valor

Diferencia entre HashSet y HashMap

Diferencia entre HashMap y TreeMap

Interfaz de mapa de Java