English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de Java

Control de flujo de Java

Java Arreglo

Java Programación Orientada a Objetos (I)

Java Programación Orientada a Objetos (II)

Java Programación Orientada a Objetos (III)

Manejo de excepciones en Java

Java Lista (List)

Java Queue (cola)

Colección Map de Java

Colección Set de Java

Java Entrada Salida (I/O)

Reader de Java/Writer

Temas de Java

Interfaz ConcurrentMap de Java

En este tutorial, aprenderemos el interfaz ConcurrentMap de Java y sus métodos.

El interfaz ConcurrentMap del framework de colecciones de Java proporciona mapeos seguros para hilos. Esto significa que varios hilos pueden acceder a este mapeo a la vez sin afectar la consistencia de los elementos del mapeo.

ConcurrentMap se conoce como map sincronizado.

Hereda deInterfaz Map

Clases que implementan ConcurrentMap

Dado que ConcurrentMap es un interfaz, no se puede crear un objeto a partir de él.

Para utilizar las funciones del interfaz ConcurrentMap, necesitamos usar la clase ConcurrentMap que implementa el interfaz.

如何使用ConcurrentMap?

要使用ConcurrentMap,我们必须先导入java.util.concurrent.ConcurrentMap软件包。导入包后,将按照以下方法创建并发映射。

// ConcurrentHashMap类的使用
CocurrentMap<Key, Value> numbers = new ConcurrentHashMap<>();

在上面的代码中,我们创建了一个名为numbers的ConcurrentMap。

这里,

  • Key - 用于关联map中每个元素(值)的唯一标识符

  • Value - map中与键相关联的元素

ConcurrentMap的方法

ConcurrentMap接口包含Map接口的所有方法。 这是因为Map是ConcurrentMap接口的超级接口。

除了所有这些方法,以下是特定于ConcurrentMap接口的方法。

  • putIfAbsent() - 如果指定的键尚未与任何值关联,则将指定的键/值插入到映射中。

  • compute() - 计算指定键及其先前映射值的条目(键/值映射)。

  • computeIfAbsent() - 如果键尚未与任何值映射,则使用指定函数为指定键计算一个值。

  • computeIfPresent() - 如果已使用指定值映射键,则为指定键计算新条目(键/值映射)。

  • forEach() - 访问map的所有条目并执行指定的操作。

  • merge() -如果指定键已经映射到某个值,则将指定的新值与指定键的旧值合并。如果键还没有映射,该方法将指定的值与键关联。

ConcurrentHashMap中的ConcurrentMap实现

import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.ConcurrentHashMap;
class Main {
    public static void main(String[] args) {
        //使用ConcurrentHashMap创建ConcurrentMap
        ConcurrentMap<String, Integer> numbers = new ConcurrentHashMap<>();
        // 插入元素到map
        numbers.put("Two", 2);
        numbers.put("One", 1);
        numbers.put("Three", 3);
        System.out.println("ConcurrentMap: " + numbers);
        //访问指定的键
        int value = numbers.get("One");
        System.out.println("被访问的值: " + value);
        //删除指定键的值
        int removedValue = numbers.remove("Two");
        System.out.println("被删除的值: " + removedValue);
    }
}

输出结果

ConcurrentMap: {One=1, Two=2, Three=3}
被访问的值: 1
被删除的值: 2

要了解更多信息ConcurrentHashMap,请访问Java ConcurrentHashMap