Obtener un mapa sincronizado de Java TreeMap

TreeMap es parte del marco de colecciones de Java. Java TreeMap contiene valores basados ​​en la clave. Implementa la interfaz NavigableMap y extiende la clase AbstractMap . Proporciona un medio eficaz para almacenar pares clave-valor en orden. Java TreeMap contiene solo elementos únicos. No puede tener una clave nula pero puede tener múltiples valores nulos. TreeMap mantiene el orden ascendente de los elementos. 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. Java TreeMap no está sincronizado, tenemos que sincronizarlo explícitamente para usarlo en un entorno de subprocesos múltiples.

TreeMap se puede sincronizar mediante el método Collections.synchronizedMap() . El método synchronizedMap() de la clase Collections toma el mapa que debe sincronizarse como parámetro y devuelve un mapa sincronizado seguro para subprocesos. El método sincronizadoMap() de la clase java.util.Collections se utiliza para devolver un mapa sincronizado (seguro para subprocesos) respaldado por el mapa especificado. Para garantizar el acceso en serie, es fundamental que todo acceso al mapa de respaldo se realice a través del mapa devuelto.

Sintaxis:

public static <K, V> Map<K, V> synchronizedMap(Map<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.

Implementación:

Ejemplo

Java

// Java program to demonstrate
// synchronization of TreeMap
 
// Importing all classes from
// java.util package
import java.util.*;
 
// Class
public class GFG {
 
    // Main driver method
    public static void main(String[] args) throws Exception
    {
 
        // Try block to check if any exception occurs
        try {
 
            // Step1: Creating a TreeMap object
            // Declaring object of string type
            TreeMap<String, String> treeMap
                = new TreeMap<String, String>();
 
            // Step2: Adding elements into the above Map
            // Custom inputs
            treeMap.put("1", "Welcome");
            treeMap.put("2", "To");
            treeMap.put("3", "Geeks");
            treeMap.put("4", "For");
            treeMap.put("5", "Geeks");
 
            // Printing all elements of the above Map object
            System.out.println("Map : " + treeMap);
 
            // Synchronizing the map using
            // synchronizedMap() method of Collection class
            Map<String, String> sMap
                = Collections.synchronizedMap(treeMap);
 
            // Printing the Collection
            System.out.println("Synchronized map is : "
                               + sMap);
        }
 
        // Catch block to handle the exceptions
        catch (IllegalArgumentException e) {
 
            // Displaying and printing the exception
            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 *