En este tutorial, aprenderemos sobre la interfaz Java ConcurrentMap y sus métodos.
La ConcurrentMap
interfaz del marco de colecciones de Java proporciona un mapa seguro para subprocesos. Es decir, varios subprocesos pueden acceder al mapa a la vez sin afectar la coherencia de las entradas en un mapa.
ConcurrentMap
se conoce como mapa sincronizado.
Extiende la interfaz del mapa.
Clase que implementa ConcurrentMap
Dado que ConcurrentMap
es una interfaz, no podemos crear objetos a partir de ella.
Para usar las funcionalidades de la ConcurrentMap
interfaz, necesitamos usar la clase ConcurrentHashMap
que la implementa.
¿Cómo utilizar ConcurrentMap?
Para usar ConcurrentMap
, java.util.concurrent.ConcurrentMap
primero debemos importar el paquete. Una vez que importamos el paquete, así es como podemos crear un mapa concurrente.
// ConcurrentMap implementation by ConcurrentHashMap CocurrentMap numbers = new ConcurrentHashMap();
En el código anterior, hemos creado un mapa concurrente llamado números.
Aquí,
- Clave: un identificador único que se utiliza para asociar cada elemento (valor) en un mapa.
- Valor: elementos asociados por claves en un mapa
Métodos de ConcurrentMap
La ConcurrentMap
interfaz incluye todos los métodos de la Map
interfaz. Es porque Map
es la super interfaz de la ConcurrentMap
interfaz.
Además de todos esos métodos, aquí están los métodos específicos de la ConcurrentMap
interfaz.
- putIfAbsent () : inserta la clave / valor especificado en el mapa si la clave especificada aún no está asociada con ningún valor.
- compute () : calcula una entrada (asignación de clave / valor) para la clave especificada y su valor asignado previamente.
- computeIfAbsent () : calcula un valor utilizando la función especificada para la clave especificada si la clave no está ya asignada con ningún valor.
- computeIfPresent () : calcula una nueva entrada (asignación de clave / valor) para la clave especificada si la clave ya está asignada con el valor especificado.
- forEach () : accede a todas las entradas de un mapa y realiza las acciones especificadas.
- merge () : fusiona el nuevo valor especificado con el valor anterior de la clave especificada si la clave ya está asignada a un determinado valor. Si la clave aún no está asignada, el método simplemente asocia el valor especificado a nuestra clave.
Para obtener más información, visite Java ConcurrentMap (documentación oficial de Java).
Implementación de ConcurrentMap en ConcurrentHashMap
import java.util.concurrent.ConcurrentMap; import java.util.concurrent.ConcurrentHashMap; class Main ( public static void main(String() args) ( // Creating ConcurrentMap using ConcurrentHashMap ConcurrentMap numbers = new ConcurrentHashMap(); // Insert elements to map numbers.put("Two", 2); numbers.put("One", 1); numbers.put("Three", 3); System.out.println("ConcurrentMap: " + numbers); // Access the value of specified key int value = numbers.get("One"); System.out.println("Accessed Value: " + value); // Remove the value of specified key int removedValue = numbers.remove("Two"); System.out.println("Removed Value: " + removedValue); ) )
Salida
ConcurrentMap: (Uno = 1, Dos = 2, Tres = 3) Valor accedido: 1 Valor eliminado: 2
Para obtener más información ConcurrentHashMap
, visite Java ConcurrentHashMap.