Java ConcurrentMap 接口

原创 朱雀 2022-02-19 12:04 15016阅读 0赞

Java ConcurrentMap 接口

Java 集合框架的ConcurrentMap接口提供了一个线程安全的映射。也就是说,多个线程可以一次访问该映射,而不会影响映射中条目的一致性。

ConcurrentMap被称为同步地图。

它扩展了Map 接口。


实现 ConcurrentMap 的类

由于ConcurrentMap是一个接口,我们不能从它创建对象。

为了使用ConcurrentMap接口的功能,我们需要使用ConcurrentHashMap实现它的类。

Java ConcurrentHashMap 接口扩展了 Java ConcurrentMap 接口。


如何使用并发映射?

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

  1. // ConcurrentMap implementation by ConcurrentHashMap
  2. CocurrentMap<Key, Value> numbers = new ConcurrentHashMap<>();

在上面的代码中,我们创建了一个并发映射,命名为数字.

这里,

  • 钥匙- 用于关联地图中每个元素(值)的唯一标识符
  • 价值- 由地图中的键关联的元素

ConcurrentMap 的方法

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

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

  • putIfAbsent() - 如果指定的键尚未与任何值关联,则将指定的键/值插入映射。
  • compute() - 计算指定键及其先前映射值的条目(键/值映射)。
  • computeIfAbsent() - 如果键尚未映射到任何值,则使用指定函数为指定键计算值。
  • computeIfPresent() - 如果键已经映射到指定的值,则计算指定键的新条目(键/值映射)。
  • forEach() - 访问地图的所有条目并执行指定的操作。
  • merge() - 如果键已经映射到某个值,则将新指定值与指定键的旧值合并。如果键尚未映射,则该方法只是将指定的值与我们的键相关联。

ConcurrentHashMap中ConcurrentMap的实现

  1. import java.util.concurrent.ConcurrentMap;
  2. import java.util.concurrent.ConcurrentHashMap;
  3. class Main {
  4. public static void main(String[] args) {
  5. // Creating ConcurrentMap using ConcurrentHashMap
  6. ConcurrentMap<String, Integer> numbers = new ConcurrentHashMap<>();
  7. // Insert elements to map
  8. numbers.put("Two", 2);
  9. numbers.put("One", 1);
  10. numbers.put("Three", 3);
  11. System.out.println("ConcurrentMap: " + numbers);
  12. // Access the value of specified key
  13. int value = numbers.get("One");
  14. System.out.println("Accessed Value: " + value);
  15. // Remove the value of specified key
  16. int removedValue = numbers.remove("Two");
  17. System.out.println("Removed Value: " + removedValue);
  18. }
  19. }

输出

  1. ConcurrentMap:{一=1,二=2,三=3}
  2. 访问值:1
  3. 移除值:2
文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,15016人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java ConcurrentMap 接口

    Java ConcurrentMap 接口 Java 集合框架的ConcurrentMap接口提供了一个线程安全的映射。也就是说,多个线程可以一次访问该映射,而不会影响映...