title: Why the internal implementation of HashSet create a HashMap to store it's values?
body: <p>I'm a fresh man in coding and now learning the <code>HashSet</code> container in Java.What truly puzzled me is that the internal implementation of <code>HashSet</code> also create an private <code>HashMap</code> object to store it's value and a singleton object <code>PRESENT</code>.</p>
  
  <p>So my question is:</p>
  
  <ul>
  <li>Why would <code>HashSet</code> structure need an <code>HashMap</code> object to store it's value?(Why not using array structure or linked structure?)</li>
  <li>What is the usage of the singleton object <code>PRESENT</code>?(Used to determine whether the insert is successful?)</li>
  </ul>