为什么Hashtable不允许空键或空值?

如JDK文档中所指定,Hashtable不允许空键或值。HashMap允许一个null键和任意数量的null值。为什么是这样?

回答:

Hashtable是较老的类,通常不鼓励使用Hashtable。也许他们看到了对null键的需求,更重要的是对null值的需求,并将其添加到HashMap实现中。

HashMap是较新的,并且具有更高级的功能,这些基本上只是对Hashtable功能的改进。创建HashMap时,它专门用于将空值作为键来处理,并将它们作为特殊情况来处理。

Hashtable

JavaDoc:

为了成功地从哈希表存储和检索对象,用作键的对象必须实现hashCode方法和equals方法。

由于null不是对象,因此您无法对其进行调用.equals()或调用.hashCode(),因此Hashtable无法计算哈希值以将其用作键。

以上是 为什么Hashtable不允许空键或空值? 的全部内容, 来源链接: utcz.com/qa/432150.html

回到顶部