¿Cómo sincronizar HashMap en Java?

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);
        }
    }
}
Producción

Map : {1=Welcome, 2=To, 3=Geeks, 4=For, 5=Geeks}
Synchronized map is : {1=Welcome, 2=To, 3=Geeks, 4=For, 5=Geeks}

Publicación traducida automáticamente

Artículo escrito por ushashree 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 *