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

最佳答案

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

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

编辑

Hashtable JavaDoc:



由于null不是对象,因此无法在其上调用.equals().hashCode(),因此Hashtable无法计算散列以将其用作键。

关于java - 为什么Hashtable不允许空键或值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11981852/

10-12 23:51