title: Does ConcurrentHashMap implementation use cloning in remove operation?
body: <p>I was reading an <a href="http://www.ibm.com/developerworks/java/library/j-jtp08223/" rel="nofollow">IBM DeveloperWorks article</a> to understand how ConcurrentHashMap is implemented. The section "removal operation" suggests that the removal operation is a two step process:</p>
  
  <ol>
  <li>Find the Entry element and make it null  </li>
  <li>The portion of the chain from the head to the removed element is cloned and joined to the remainder of the chain following the removed element.</li>
  </ol>
  
  <p>I have a question here though, because I examined the the corresponding code at <a href="http://www.docjar.com/html/api/java/util/concurrent/ConcurrentHashMap.java.html" rel="nofollow">Docjar</a> and I don't see any cloning in <code>remove(Object key, int hash, Object value)</code>.</p>
  
  <p>I am not sure if I am missing something, or the implementation is different from the article?</p>