HashMap es parte del marco de la colección de java. Almacena los datos en forma de pares clave-valor. Se puede acceder a estos valores del HashMap usando sus respectivas claves. Se puede acceder a los pares clave-valor utilizando sus índices (de tipo Integer).
HashMap es similar a HashTable en Java. La principal diferencia entre HashTable y HashMap es que HashTable está sincronizado pero HashMap no está sincronizado. Además, un HashMap puede tener una clave nula y cualquier cantidad de valores nulos. El orden de inserción no se conserva en HashMap.
La sincronización significa controlar el acceso de múltiples subprocesos a cualquier recurso compartido. Un recurso sincronizado solo puede ser accedido por un subproceso a la vez.
HashMap se puede sincronizar usando el método Collections.synchronizedMap() .
sincronizadoMap() java.util.Collections
Sintaxis:
público estático <K, V> Mapa<K, V> sincronizadoMapa(Mapa<K, V> m)
Parámetros: Este método toma el mapa como parámetro para ser “envuelto” en un mapa sincronizado.
Valor devuelto: este método devuelve una vista sincronizada del mapa especificado.
Código:
Java
// Java program to demonstrate // synchronization of HashMap import java.util.*; public class GFG { public static void main(String[] argv) throws Exception { try { // create a HashMap object Map<String, String> hMap = new HashMap<String, String>(); // add elements into the Map hMap.put("1", "Welcome"); hMap.put("2", "To"); hMap.put("3", "Geeks"); hMap.put("4", "For"); hMap.put("5", "Geeks"); System.out.println("Map : " + hMap); // Synchronizing the map Map<String, String> sMap = Collections.synchronizedMap(hMap); // printing the Collection System.out.println("Synchronized map is : " + sMap); } catch (IllegalArgumentException e) { System.out.println("Exception thrown : " + e); } } }
Map : {1=Welcome, 2=To, 3=Geeks, 4=For, 5=Geeks} Synchronized map is : {1=Welcome, 2=To, 3=Geeks, 4=For, 5=Geeks}