What is the use of adding a null key or value to a HashMap in Java?
I'm not positive what you're asking, but if you're looking for an example of when one would want to use a null key, I use them often in maps to represent the default case (i.e. the value that should be used if a given key isn't present):
Map<A, B> foo;A search;B val = foo.containsKey(search) ? foo.get(search) : foo.get(null);
HashMap
handles null keys specially (since it can't call .hashCode()
on a null object), but null values aren't anything special, they're stored in the map like anything else
One example of usage for null
values is when using a HashMap
as a cache for results of an expensive operation (such as a call to an external web service) which may return null
.
Putting a null
value in the map then allows you to distinguish between the case where the operation has not been performed for a given key (cache.containsKey(someKey)
returns false
), and where the operation has been performed but returned a null
value (cache.containsKey(someKey)
returns true
, cache.get(someKey)
returns null
).
Without null
values, you would have to either put some special value in the cache to indicate a null
response, or simply not cache that response at all and perform the operation every time.