Сам автор ConcurrentHashMap
(Doug Lea) :
Основная причина, по которой nulls не разрешены в ConcurrentMaps (ConcurrentHashMaps, ConcurrentSkipListMaps), является что нельзя допускать двусмысленности, которые могут быть едва ли допустимы в неконкурентных картах. Главное, что если
map.get(key)
возвращаетnull
, вы не можете определить, не отображен ли ключ явно кnull
и к ключу. На неконкурентной карте вы можете проверить это черезmap.contains(key)
, но в параллельном режиме карта может быть изменена между вызовами.