HashMap
stores key-value pair in
Map.Entry static nested class implementation. HashMap
works on hashing algorithm and uses hashCode() and equals() method in put and getmethods.When
we call putmethod
by passing key-value pair, HashMap uses Key hashCode() with hashing to find out
the index to store the key-value pair. The Entry is stored in the LinkedList,
so if there are already existing entry, it uses equals() method to check if the
passed key already exists, if yes it overwrites the value else it creates a new
entry and store this key-value Entry. When we call get method by passing Key, again it uses the
hashCode() to find the index in the array and then use equals() method to find
the correct Entry and return it’s value. Below image will explain these detail
clearly.
The
other important things to know about HashMap are capacity, load factor,
threshold resizing. HashMap initial default capacity is 32 and load factor is
0.75. Threshold is capacity multiplied by load factor and whenever we try to
add an entry, if map size is greater than threshold, HashMap rehashes the
contents of map into a new array with a larger capacity. The capacity is always
power of 2, so if you know that you need to store a large number of key-value
pairs, for example in caching data from database, it’s good idea to initialize
the HashMap with correct capacity and load factor.

No comments:
Post a Comment