title: How to make a CaseInsensitiveConcurrentMap?
body: <p>How can I implement</p>
  
  <pre><code>class CaseInsensitiveConcurrentMap&lt;V&gt; implements ConcurrentMap&lt;String , V&gt;
  </code></pre>
  
  <p>which works just like <code>ConcurrentHashMap&lt;String , V&gt;</code> except that the keys are compared case-insensitively? The keys should not be converted to lowercase or uppercase.</p>
  
  <p>Note that <code>Collections.synchronizedMap(new TreeMap&lt;String, new MyCaseInsensitiveComparator())</code> is no solution as it allows no concurrency and misses the additional methods.</p>
  
  <p>Creating a String-like class with case-insensitive <code>equals</code> and <code>hashCode</code> is no option either, since the map has to be passed to methods expecting strings as keys.</p>