Java ConcurrentMap 接口 2022-02-19 20:04 8660阅读 0赞 # Java ConcurrentMap 接口 Java 集合框架的`ConcurrentMap`接口提供了一个线程安全的映射。也就是说,多个线程可以一次访问该映射,而不会影响映射中条目的一致性。 `ConcurrentMap`被称为同步地图。 它扩展了Map 接口。 ------ ## 实现 ConcurrentMap 的类 由于`ConcurrentMap`是一个接口,我们不能从它创建对象。 为了使用`ConcurrentMap`接口的功能,我们需要使用`ConcurrentHashMap`实现它的类。  ------ ## 如何使用并发映射? 要使用`ConcurrentMap`,我们必须先导入`java.util.concurrent.ConcurrentMap`包。导入包后,以下是创建并发映射的方法。 ``` // ConcurrentMap implementation by ConcurrentHashMap CocurrentMap<Key, Value> numbers = new ConcurrentHashMap<>(); ``` 在上面的代码中,我们创建了一个并发映射,命名为数字. 这里, - 钥匙- 用于关联地图中每个元素(值)的唯一标识符 - 价值- 由地图中的键关联的元素 ------ ## ConcurrentMap 的方法 `ConcurrentMap`接口包括接口的所有方法`Map`。因为`Map`是接口的超级`ConcurrentMap`接口。 除了所有这些方法,这里是特定于`ConcurrentMap`接口的方法。 - **putIfAbsent()** - 如果指定的键尚未与任何值关联,则将指定的键/值插入映射。 - **compute()** - 计算指定键及其先前映射值的条目(键/值映射)。 - **computeIfAbsent()** - 如果键尚未映射到任何值,则使用指定函数为指定键计算值。 - **computeIfPresent()** - 如果键已经映射到指定的值,则计算指定键的新条目(键/值映射)。 - **forEach()** - 访问地图的所有条目并执行指定的操作。 - **merge()** - 如果键已经映射到某个值,则将新指定值与指定键的旧值合并。如果键尚未映射,则该方法只是将指定的值与我们的键相关联。 ------ ## 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:{一=1,二=2,三=3} 访问值:1 移除值:2 ``` 文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。
相关 ConcurrentMap.putIfAbsent(key,value) 用法 业务上经常会遇到有这种场景,全局维护一个并发的ConcurrentMap, Map的每个Key对应一个对象,这个对象需要只创建一次。如果Map中该key对应的value不存在则 骑猪看日落/ 2021年05月12日 19:55/ 0 赞/ 289 阅读
相关 Java中的Map【四】ConcurrentMap接口 所使用的jdk版本为1.8版本,先看一下ConcurrentMap<K,V>在JDK中Map的UML类图中的位置: ![watermark_type_ZmFuZ3poZW5n 港控/mmm°/ 2021年09月21日 07:20/ 0 赞/ 187 阅读
相关 HashMap和ConcurrentMap性能测试 测试代码: public static void main(String[] args) { Map map=new HashMap(); 阳光穿透心脏的1/2处/ 2021年11月02日 02:46/ 0 赞/ 191 阅读
相关 Java ConcurrentMap 接口 Java ConcurrentMap 接口 Java 集合框架的ConcurrentMap接口提供了一个线程安全的映射。也就是说,多个线程可以一次访问该映射,而不会影响映... 朱雀/ 2022年02月19日 20:04/ 0 赞/ 8661 阅读
相关 Java集合--ConcurrentMap Java集合–ConcurrentMap 1 Map并发集合 1.1 ConcurrentMap ConcurrentMap,它是一个接口,是一个能够支持并发 我就是我/ 2022年03月15日 10:04/ 0 赞/ 34 阅读
相关 彻头彻尾的理解ConcurrentMap 转载:[https://blog.csdn.net/justloveyou\_/article/details/72783008][https_blog.csdn.net_ju ﹏ヽ暗。殇╰゛Y/ 2022年05月05日 20:58/ 0 赞/ 44 阅读
相关 Atomic Variables and ConcurrentMap AtomicInteger The package `java.concurrent.atomic` contains many useful classes to pe 野性酷女/ 2022年05月14日 09:51/ 0 赞/ 23 阅读
相关 ConcurrentMap接口 ConcurrentMap接口 两个实现 ConcurrentHashMap ConcurrentSkipListMap 支持并发排序功能,弥补Concurr 今天药忘吃喽~/ 2022年05月14日 12:56/ 0 赞/ 31 阅读
相关 ConcurrentMap的putIfAbsent与put的区别 首先putIfAbsent与put都可以往map中添加内容,但它们在添加的时候有着很大的不同,一不注意,就会采坑。putIfAbsent在添加的时候会验证hash值, 港控/mmm°/ 2022年05月25日 15:28/ 0 赞/ 43 阅读
相关 Java并发编程---并发类容器(ConcurrentMap容器) 一.背景前奏 jdk5.0以后提供了多种并发类容器来替代同步类容器从而改善性能.同步类容器的状态都是串行化的.他们虽然实现了线程安全.但是严重降低了并发性,在多线程环境时, 我不是女神ヾ/ 2022年06月02日 10:57/ 0 赞/ 82 阅读
还没有评论,来说两句吧...