Я использую putIfAbsent для добавления значений в ConcurrentHashMap, если они еще не существуют как атомные операции.Каков правильный способ определить, изменил ли putIfAbsent ConcurrentHashMap?
Это все кажется прекрасным, но я действительно мог бы понять, был ли добавлен новый объект.
Лучшая идея заключается в том, чтобы проверить, является ли возвращаемое значение из putIfAbsent равным нулю, похоже, что оно должно работать до тех пор, пока мы никогда не ставим нулевые значения на карту (что ConcurrentHashMap не позволяет в любом случае), но я был интересно, было ли что-то, что я пропустил. Или это правильный способ сделать это?
Проверка правильного значения возвращаемого значения 'putIfAbsent()'. –
@SeanBright Да, это был вывод, к которому я пришел, но «return == null» казался странным способом проверить, что операция что-то сделала. –
Связано: [Если вы проверяете, содержит ли карта ключ перед использованием putIfAbsent] (http://stackoverflow.com/questions/3752194/should-you-check-if-the-map-containskey-before-using-concurrentmaps-putifabsent) –