キーがまだ存在しない場合にのみ、キーと値のペアをマップに挿入したいと思います。それ以外の場合は、既存の値を置き換えずに取得したいと思います。これは、get() の後に条件付き put() を実行することで実行できます。ただし、これには Map 内のキーの場所を 2 回解決する必要があり (マップの実装に応じて 2 回のハッシュ、2 回のツリー トラバーサルなど)、不要に思われます。C++ STL で map::insert が機能するのと同様に、標準の Map 実装のいずれかでこの操作を要約できますか?
質問する
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 に答える