从
Hashtable
JavaDoc:
To successfully store and retrieve objects from a hashtable, the objects used as keys must implement the hashCode method and the equals method.
简而言之,由于
null不是对象,因此无法调用
.equals()或
.hashCode()对其进行调用,因此
Hashtable无法计算哈希值以将其用作键。
HashMap较新,并且具有更高级的功能,基本上只是对
Hashtable功能的改进。这样,在
HashMap创建时,它专门设计为将
null值作为键来处理,并将它们作为特殊情况来处理。
具体来说,
null在发出时,像这样处理用作键
.get(key):
(key==null ? k==null : key.equals(k))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)