HashMap es una clase de colección no sincronizada. Si queremos realizar operaciones seguras para subprocesos en él, debemos sincronizarlo explícitamente. Para sincronizarlo explícitamente, se utiliza el métodosynchroncedMap() de la clase java.util.Collections para devolver un mapa sincronizado (seguro para subprocesos) respaldado por el mapa especificado.
// Get synchronized map using Collections.synchronizedMap() Map<Integer, String> synchrMap = Collections.synchronizedMap(hmap);
Para iterar el mapa sincronizado usamos un bloque sincronizado :
// Synchronized block synchronized (synchrMap) { // Iterate synchronized map for (Map.Entry<Integer, String> entry : synchrMap.entrySet()) { // Print key : value System.out.println(entry.getKey() + " : " + entry.getValue()); } }
Implementación:
Java
// Java Program to demonstrate how // to get synchronized map from HashMap import java.util.*; class GFG { public static void main(String[] args) { // New HashMap HashMap<Integer, String> hmap = new HashMap<>(); // Add element to map hmap.put(1, "Akshay"); hmap.put(2, "Bina"); hmap.put(3, "Chintu"); // Get synchronized map using // Collections.synchronizedMap() Map<Integer, String> synchrMap = Collections.synchronizedMap(hmap); System.out.println("Synchronized Map : "); // Synchronized block synchronized (synchrMap) { // Iterate synchronized map for (Map.Entry<Integer, String> entry : synchrMap.entrySet()) { // Print key : value System.out.println(entry.getKey() + " : " + entry.getValue()); } } } }
Producción
Synchronized Map : 1 : Akshay 2 : Bina 3 : Chintu
Publicación traducida automáticamente
Artículo escrito por nikhilchhipa9 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA