我只想在键不存在的情况下将键值对插入到 Map 中,否则我想检索现有值而不替换它。我可以使用 get() 来完成此操作,然后是条件 put()。但是,这需要两次解析 Map 中键的位置(2 个哈希、2 个树遍历等,具体取决于 map 实现),这似乎是不必要的。是否有任何标准 Map 实现允许压缩此操作,类似于 map::insert 在 C++ STL 中的工作方式?
问问题
779 次
1 回答
5
ConcurrentMap
有putIfAbsent
方法。
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/ConcurrentHashMap.html
于 2012-11-28T23:48:00.377 回答