Monday, March 7, 2016

Why does Hashtable not allow null key?

To successfully store and retrieve objects from a hashtable, the objects used 
as keys must implement the hashCode method and the equals method.
In a nutshell, since null isn't an object, you can't call .equals() or .hashCode() on it, so the Hashtable can't compute a hash to use it as a key.
HashMap is newer, and has more advanced capabilities, which are basically just an improvement on the Hashtable functionality. As such, when HashMap was created, it was specifically designed to handle null values as keys and handles them as a special case.
Specifically, the use of null as a key is handled like this when issuing a .get(key):
(key==null ? k==null : key.equals(k))
All Credit goes to cdeszaq
Original Link: Why does Hashtable not take null key?

No comments:

Post a Comment