null keys and values: HashMap allows, ConcurrentHashMap rejects =============================================================== HashMap.put(null, ..) accepted; the null key lives in table[0]: true HashMap.get(null) = for-null-key HashMap.get("present-but-null") = null containsKey = true HashMap.get("absent") = null containsKey = false <- get() alone cannot tell these two apart ConcurrentHashMap put(null, v), put(k, null), get(null), containsKey(null), merge(k, null, f): all throw NullPointerException compute(k, (k,v) -> null) removes the entry instead: containsKey(k) = false