Interfaz Java ConcurrentMap
Interfaz de mapa concurrente de Java
En este tutorial, aprenderemos sobre la interfaz Java ConcurrentMap y sus métodos.
El ConcurrentMap
La 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 consistencia de las entradas en un mapa.
ConcurrentMap
se conoce como mapa sincronizado.
Amplía la interfaz del Mapa.
Clase que implementa ConcurrentMap
Desde ConcurrentMap
es una interfaz, no podemos crear objetos a partir de ella.
Para utilizar las funcionalidades del ConcurrentMap
interfaz, necesitamos usar la clase ConcurrentHashMap
que lo implementa.
¿Cómo usar ConcurrentMap?
Para usar el ConcurrentMap
, debemos importar el java.util.concurrent.ConcurrentMap
paquete primero. Una vez que importamos el paquete, así es como podemos crear un mapa concurrente.
// ConcurrentMap implementation by ConcurrentHashMap
CocurrentMap<Key, Value> numbers = new ConcurrentHashMap<>();
En el código anterior, hemos creado un mapa concurrente llamado numbers .
Aquí,
- Clave - un identificador único utilizado para asociar cada elemento (valor) en un mapa
- Valor - elementos asociados por claves en un mapa
Métodos de ConcurrentMap
El ConcurrentMap
la interfaz incluye todos los métodos del Map
interfaz. Es porque Map
es la súper interfaz del ConcurrentMap
interfaz.
Además de todos esos métodos, aquí están los métodos específicos del ConcurrentMap
interfaz.
- putIfAbsent() - Inserta la clave/valor especificado en el mapa si la clave especificada aún no está asociada con ningún valor.
- calcular() - Calcula una entrada (asignación de clave/valor) para la clave especificada y su valor previamente asignado.
- computeIfAbsent() - Calcula un valor utilizando la función especificada para la clave especificada si la clave aún no está asignada a 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.
- paraCada() - Acceder a todas las entradas de un mapa y realizar las acciones especificadas.
- combinar() - Combina el nuevo valor especificado con el valor anterior de la clave especificada si la clave ya está asignada a un valor determinado. 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<String, Integer> 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: {One=1, Two=2, Three=3} Accessed Value: 1 Removed Value: 2
Para obtener más información sobre ConcurrentHashMap
, visite Java ConcurrentHashMap.
Java