为什么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