HINT -- Consider infusing auto-rehashing into the appropriate core algorithm(s) at the appropriate place(s).

Algorithm for Method 'put(key, value)'


This method receives a key and value and should insert the value into the hash table at the key (so that later the value can be looked up by the key).


Algorithm for Method 'get(key)'


This method receives a key and searches for the associated value. If found, it returns the associated value, otherwise it returns null.


Algorithm for Method 'removeKey(key)'


This method receives a key to remove from the hash table.


Algorithm Gap


The core algorithms have a gap: How do we search for a key in a bucket?