3
我想插入一个键值对只有当钥匙不存在,否则我想检索现有的价值而不取代它。我可以用get()来做到这一点,然后是有条件的put()。然而,这需要两次解决Map中键的位置(2次散列,2棵树遍历等,这取决于地图实现),这似乎是不必要的。是否有任何标准的Map实现允许这个操作被压缩,类似于map :: insert在C++ STL中的工作方式?任何允许有条件插入的Java Map实现类似于STL map :: insert?
谢谢。这似乎是非线程安全地图中的一种有用的方法,所以如果不需要的话,不要在写入时锁定写入惩罚。尽管看起来它包含的原因是支持原子检查和设置,而不是性能优化。 – rbfblk
您可以为非并发环境添加一个用于检查以前值的方法。 –