title: Why there is no ConcurrentHashSet against ConcurrentHashMap
body: <p>HashSet is based on HashMap.</p>
  
  <p>If we look at <code>HashSet&lt;E&gt;</code> implementation, everything is been managed under <code>HashMap&lt;E,Object&gt;</code>.</p>
  
  <p><code>&lt;E&gt;</code> is used as a key of <code>HashMap</code>.</p>
  
  <p>And we know that <code>HashMap</code> is not thread safe. That is why we have <code>ConcurrentHashMap</code> in Java.</p>
  
  <p>Based on this, I am confused that <strong>why we don't have a ConcurrentHashSet which should be based on the <code>ConcurrentHashMap</code>?</strong></p>
  
  <p>Is there anything else that I am missing? I need to use <code>Set</code> in a multi-threaded environment.</p>
  
  <p>Also, If I want to create my own <code>ConcurrentHashSet</code> can I achieve it by just replacing the <code>HashMap</code> to <code>ConcurrentHashMap</code> and leaving the rest as is?</p>