java - 通过单次查找初始化 Java Map 中的条目(就像在 C++ 中一样)

标签 java collections

在 C++ 中,我可以在映射中查找键,如果不存在则将其插入,只需一次查找的成本。我可以用 Java 做同样的事情吗?

更新:

(对于那些必须查看代码的人。)

long id = 0xabba;
int version = 0xb00b;  
for (List<Object> key : keys) {
    if (!index.containsKey(key)) {
      index.put(key, Maps.<Long,Integer>newHashMap());
    }
    index.get(key).put(id, version);
}

当 key 首次插入映射时,有两次查找。在 C++ 中,我只需一次查找即可完成此操作。

最佳答案

并发映射有一个原子 putIfAbsent方法,如果这就是你的意思。

关于java - 通过单次查找初始化 Java Map 中的条目(就像在 C++ 中一样),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7178606/

相关文章:

swift - 如何使用 UICollectionViewCompositionalLayout 创建像图像这样的 Collection View

laravel - 集合到具有特定键的关联数组 [L5.2]

java - 在 Java 中是否有更简单的方法来知道被拒绝的任务(由执行器)是否已作为 "CallerRunsPolicy"运行?

java - jax-ws: "keep"工具中的 "wsgen"标志究竟有什么作用?

java - Android 平方根计算错误

java - 将java中的对象列表转换为String键到List<objects>的映射,使用其字段之一作为键

c# - 如何检查字符串数组是否包含特定字符串?

java - Spring java中启动和停止调度任务

java - hibernate的 "property-ref"元素标签中的 "one-to-one"属性有什么作用?

java - 找出另一个数组列表中不存在的数组列表的元素