Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
任何允许类似于STL Map::insert的条件插入的Java映射实现?_Java - Fatal编程技术网

任何允许类似于STL Map::insert的条件插入的Java映射实现?

任何允许类似于STL Map::insert的条件插入的Java映射实现?,java,Java,我只希望在键不存在时将键值对插入到映射中,否则我希望检索现有值而不替换它。我可以使用get()和条件put()来实现这一点。但是,这需要两次解析密钥在映射中的位置(2次哈希、2次树遍历等,具体取决于映射实现),这似乎是不必要的。任何标准的映射实现都允许这个操作被浓缩,类似于如何映射:插入在C++ STL中工作?< /P> CONTRONMODMAP/已经 P> 谢谢。在非线程安全映射中,这似乎也是一种有用的方法,这样就不会在不需要的情况下受到写锁定的惩罚。虽然它看起来是为了支持原子检查和设置,

我只希望在键不存在时将键值对插入到映射中,否则我希望检索现有值而不替换它。我可以使用get()和条件put()来实现这一点。但是,这需要两次解析密钥在映射中的位置(2次哈希、2次树遍历等,具体取决于映射实现),这似乎是不必要的。任何标准的映射实现都允许这个操作被浓缩,类似于如何映射:插入在C++ STL中工作?< /P> <代码> CONTRONMODMAP/<代码>已经<代码> P>

谢谢。在非线程安全映射中,这似乎也是一种有用的方法,这样就不会在不需要的情况下受到写锁定的惩罚。虽然它看起来是为了支持原子检查和设置,而不是性能优化。在非并发环境中,您可以为检查前一个值的方法添加一个方法。