Junior — Middle
How is it determined which bucket a new value will be placed in when adding an element to a HashMap?
sobes.tech AI
Answer from AI
In Java, when adding an element to a HashMap, the bucket (or bin) is determined using the hash function of the key and the size of the bucket array.
Algorithm:
- The
hashCode()method is called on the key to obtain an integer hash value. - This value is further processed (for example, a bitwise operation is applied to improve distribution).
- Then, the bucket index is calculated as
index = (n - 1) & hash, wherenis the current size of the bucket array (usually a power of two).
Thus, the element is placed into the bucket with an index depending on the hash of the key and the array size. This ensures a uniform distribution of elements across buckets and efficient access.
Example of simplified index calculation:
int hash = key.hashCode();
int index = (table.length - 1) & hash;