title: Performance of HashMap with different initial capacity and load factor
body: <p>Here is my situation. I am using two java.util.HashMap to store some frequently used data in a Java web app running on Tomcat. I know the exact number of entries into each Hashmap. The keys will be strings, and ints respectively. </p>
  
  <p>My question is, what is the best way to set the initial capacity and loadfactor? </p>
  
  <p>Should I set the capacity equal to the number of elements it will have and the load capacity to 1.0? I would like the absolute best performance without using too much memory. I am afraid however, that the table would not fill optimally. With a table of the exact size needed, won't there be key collision, causing a (usually short) scan to find the correct element? </p>
  
  <p>Assuming (and this is a stretch) that the hash function is a simple mod 5 of the integer keys, wouldn't that mean that keys 5, 10, 15 would hit the same bucket and then cause a seek to fill the buckets next to them? Would a larger initial capacity increase performance? </p>
  
  <p>Also, if there is a better datastructure than a hashmap for this, I am completely open to that as well.</p>