gpt4 book ai didi

java - 嵌套同步 map

转载 作者:行者123 更新时间:2023-11-29 04:20:47 24 4
gpt4 key购买 nike

我怎样才能安全地将元素放入

ConcurrentMap <String, Set<Integer>> cmap = new ConcurrentMap<String, Set<Integer>>();

我对我的并发图进行如下操作:

  • 如果一个键不存在:用一些字符串和一个全新的输入 Set<Integer>
  • 如果存在:添加一个特定的 Integer到这把 key 的 Set<Integer>值(value)。

最佳答案

ConcurrentMap 有一个方法可以在丢失时初始化映射值。我还假设里面的集合应该是线程安全的:

Set<Integer> set = cmap.computeIfAbsent(key,(k)->  Collections.newSetFromMap(new ConcurrentHashMap<>()));

set.add(value);

在 lambda 之前:

    Set<Integer> set = cmap.get(key);
if (set == null) {
set = Collections.newSetFromMap(new ConcurrentHashMap<>());
Set<Integer> prev = cmap.putIfAbsent(key, set);
if (prev != null) {
set = prev;
}
}
set.add(value);

关于java - 嵌套同步 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49300029/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com