在 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/