我想仅在键不存在时才将键值对插入到Map中,否则我想检索现有值而不替换它。我可以用get(),然后是有条件的put()来做到这一点。但是,这需要两次解决键在Map中的位置(2次哈希,2次遍历树,具体取决于map实现),这似乎是不必要的。是否有任何标准Map实现都可以简化此操作,类似于map::insert在C++ STL中的工作方式?
最佳答案
ConcurrentMap
具有putIfAbsent
方法。
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/ConcurrentHashMap.html