Hash Table that tries to hash Strings uniformly?
<p>I am currently in a Data Structures course nearing the end of the semester, and have been assigned a project in which we are implementing a Linked Hash Table to store and retrieve keys. We have been given a pretty large amount of freedom with how we are going to design our hash table implementation, but for bonus points we were told to try and find a hash function that distributes our keys (unique strings) close to uniformly and randomly throughout the table. </p>

<p>I have chosen to use the ELF hash, seen here <a href="http://www.eternallyconfuzzled.com/tuts/algorithms/jsw_tut_hashing.aspx" rel="nofollow noreferrer">http://www.eternallyconfuzzled.com/tuts/algorithms/jsw_tut_hashing.aspx</a></p>

<p>My question is as follows: With this hash function an integer is returned, but I am having trouble seeing how this can be used to help specify a specific index to put my key in in the hash table. I could simply do: index = ELFhash(String key) % tableSize, but does this defeat the purpose of using the ELF hash in the first place?? </p>

<p>Also I have chosen my collision resolution strategy to be double hashing. Is there a good way to determine an appropriate secondary hashing function to find your jumps? My hash table is not going to be a constant size (sets of strings will be added and removed from the set of data I am hashing, and I will be rehashing them after each iteration of adding and removing to have a load factor of .75), so it is hard for me to just do something like k % n where n is a number that is relatively prime with my table size.</p>

<p>Thanks for taking the time to read my question, and let me know what you think!</p>