title: I'm having difficulty understanding a concept in Hash Tables
body: <p>I understand the allure of hash tables is that you get O(1) lookup times, but I'm having difficulty understanding how the storage component works.</p>
  
  <p>I understand Hash Tables use a key-value pair, where given a certain key you can get its particular value back. So if I wanted to associate a name with a phone number, I could have "Paul" as the key, and the phone number as the value I then receive. I understand that much.</p>
  
  <ul>
  <li>So does it work in that at the array index that "Paul" get hashed to (say, <code>3</code>), the value there will be a phone number, thus the O(1) lookup time?</li>
  <li>I know collisions are the bane of hash tables, and it seems the most popular way is to put a linked list at each entry instead of a raw value, but how does that then work when looking values up? If there's only one value I can essentially say "get me the value at that index" but if there's multiple phone numbers stored at "Paul"'s hashed index, how do I know which one is actually Paul's?</li>
  </ul>