Junior — Middle
Can you explain how the put() method works in a hash table using hashCode?
sobes.tech AI
Answer from AI
The put() method in a hash table uses a hash function (usually called hashCode() on the key) to determine the index in the array where the key-value pair will be stored. The algorithm roughly is:
- Call
hashCode()on the key to get an integer value. - Convert this value into an array index, typically using modulo operation or bitwise operations.
- If the array cell already contains elements (collision), traverse the linked list or other structure to find if the key already exists.
- If the key is found, update the value; if not, add a new pair.
Example simplified code:
public V put(K key, V value) {
int hash = key.hashCode();
int index = hash % table.length;
for (Entry<K, V> e = table[index]; e != null; e = e.next) {
if (e.key.equals(key)) {
V oldValue = e.value;
e.value = value;
return oldValue;
}
}
Entry<K, V> newEntry = new Entry<>(key, value, table[index]);
table[index] = newEntry;
size++;
return null;
}
Thus, hashCode() helps quickly find the position for storage, then collision handling and value update or insertion occur.