之所以并发的ConcurrentHashMap不支持null的深层次的原因在于,null会带来难以容忍的二义性。我们可以看看Doug Lea对这个问题的描述。 Handling Null Values in ConcurrentHashMap Tutika Chakravarthy wrote: > Hi , > I would like to replace some Hashmaps in our > application, which are prone to multi threa...
而ConcurrentHashMap 就不一样了,因为 ConcurrentHashMap 使用的场景是多线程,所以它的情况更加复杂。 我们假设 ConcurrentHashMap 可以存入 null 值,有这样一个场景,现在有一个线程 A 调用了 concurrentHashMap.containsKey(key),我们期望返回的结果是 false,但在我们调用 concurrentHashMap.containsKey(key) 之后,未...
之所以并发的ConcurrentHashMap不支持null的深层次的原因在于,null会带来难以容忍的二义性。我们可以看看Doug Lea对这个问题的描述。 Handling Null Values in ConcurrentHashMap Tutika Chakravarthy wrote: > Hi , > I would like to replace some Hashmaps in our > application, which are prone to multi threa...
这是因为HashMap的设计是给单线程使用的,所以如果取到 null(空) 值,我们可以通过HashMap的 containsKey(key)方 法来区分这个 null(空) 值到底是插入值是 null(空),还是本就没有才返回的 null(空) 值。 而ConcurrentHashMap 就不一样了,因为 ConcurrentHashMap 是在多线程场景下使用的,它的情况更加复杂。 ...
之所以并发的ConcurrentHashMap不支持null的深层次的原因在于,null会带来难以容忍的二义性。我们可以看看Doug Lea对这个问题的描述。 Handling Null Values in ConcurrentHashMap TutikaChakravarthywrote:>Hi,>I would like to replace someHashmapsinour>application,which are prone to multi threading issues>withConCur...
of nulls in uses of maps with NULL? -Doug 以上信件的主要意思是,Doug Lea 认为这样设计最主要的原因是:不容忍在并发场景下出现歧义! 总结 在Java 语言中,HashMap 这种单线程下使用的集合是可以设置 null 值的,而并发集合如 ConcurrentHashMap 或 Hashtable 是不允许给 key 或 value 设置 null 值的...
原作者回复:[concurrency-interest] Handling Null Values in ConcurrentHashMap
之所以并发的ConcurrentHashMap不支持null的深层次的原因在于,null会带来难以容忍的二义性。我们可以看看Doug Lea对这个问题的描述。Handling Null Values in ConcurrentHashMap 代码语言:javascript 复制 Tutika Chakravarthy wrote:>Hi,>Iwould like to replace some Hashmapsinour>application,which are prone to multi...
> with ConCurrentHashMap. > > Currently we keep null key and values in hashmap > without any issues as HashMap allows them. > > But ConcurrentHashMap does not allow any null key and > values . > Try to take Holger's advice. As mostly an aside though... ...
已经说了Hashtable在存储key与value时均不可为null,但当时的侧重点全在HashMap身上,就没有详细的解释...