putIfAbsentを使用してConcurrentHashMapに値を追加しています(アトミック操作として存在していない場合)。putIfAbsentがConcurrentHashMapを変更したかどうかを判断する正しい方法は何ですか?
それはすべてうまく見えますが、実際に新しいオブジェクトが実際に追加されたかどうかを知ることができます。
putIfAbsentからの戻り値がnullであるかどうかを確認することです。マップにnull値を入れない限り(これはConcurrentHashMapがとにかく許可しない限り)動作するはずですが、私が逃した何かがあるかどうか疑問に思っています。それとも正しい方法ですか?
'putIfAbsent()'の戻り値を確認するのが正しい方法です。 –
@SeanBrightええ、それも私が来た結論でしたが、 "return == null"は操作が何かをしたという事実をチェックする奇妙な方法のようでした。 –
関連:[putIfAbsentを使用する前に地図にキーが含まれているかどうかを確認する必要があります](http://stackoverflow.com/questions/3752194/should-you-check-if-the-map-containskey-before-using-concurrentmaps-putifabsent ) –