3
我想插入一個鍵值對只有當鑰匙不存在,否則我想檢索現有的價值而不取代它。我可以用get()來做到這一點,然後是有條件的put()。然而,這需要兩次解決Map中鍵的位置(2次散列,2棵樹遍歷等,這取決於地圖實現),這似乎是不必要的。是否有任何標準的Map實現允許這個操作被壓縮,類似於map :: insert在C++ STL中的工作方式?任何允許有條件插入的Java Map實現類似於STL map :: insert?
謝謝。這似乎是非線程安全地圖中的一種有用的方法,所以如果不需要的話,不要在寫入時鎖定寫入懲罰。儘管看起來它包含的原因是支持原子檢查和設置,而不是性能優化。 – rbfblk
您可以爲非併發環境添加一個用於檢查以前值的方法。 –