Java ConcurrentMap 接口
Java ConcurrentMap 接口
在本教程中,我们将学习 Java ConcurrentMap 接口及其方法。
ConcurrentMap
Java 集合框架的接口提供了一个线程安全的映射。即多个线程可以一次访问该map,而不影响一个map中条目的一致性。
ConcurrentMap
被称为同步地图。
它扩展了 Map 接口。
实现ConcurrentMap的类
从 ConcurrentMap
是一个接口,我们不能从它创建对象。
为了使用 ConcurrentMap
的功能 接口,我们需要使用类ConcurrentHashMap
实现它。
如何使用ConcurrentMap?
使用 ConcurrentMap
,我们必须导入 java.util.concurrent.ConcurrentMap
先打包。导入包后,以下是创建并发映射的方法。
// ConcurrentMap implementation by ConcurrentHashMap
CocurrentMap<Key, Value> numbers = new ConcurrentHashMap<>();
在上面的代码中,我们创建了一个名为 numbers 的并发映射 .
在这里,
- 键 - 用于关联地图中每个元素(值)的唯一标识符
- 值 - 由地图中的键关联的元素
ConcurrentMap的方法
ConcurrentMap
接口包含Map
的所有方法 界面。这是因为Map
是ConcurrentMap
的超级接口 界面。
除了所有这些方法,这里是特定于 ConcurrentMap
的方法 界面。
- putIfAbsent() - 如果指定的键尚未与任何值关联,则将指定的键/值插入到映射中。
- 计算() - 计算指定键及其先前映射值的条目(键/值映射)。
- computeIfAbsent() - 如果键尚未映射到任何值,则使用指定函数为指定键计算值。
- computeIfPresent() - 如果键已与指定值映射,则为指定键计算新条目(键/值映射)。
- forEach() - 访问地图的所有条目并执行指定的操作。
- 合并() - 如果键已经映射到某个值,则将新指定值与指定键的旧值合并。如果键尚未映射,则该方法只需将指定的值与我们的键相关联。
要了解更多信息,请访问 Java ConcurrentMap(Java 官方文档)。
ConcurrentHashMap中ConcurrentMap的实现
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);
}
}
输出
ConcurrentMap: {One=1, Two=2, Three=3} Accessed Value: 1 Removed Value: 2
了解更多关于 ConcurrentHashMap
,访问Java ConcurrentHashMap。
java