title: Why need synchronizedMap() if there is ConcurrentHashMap?
body: <p>I read an article about thread safe maps and got a question. <code>Collections.synchronizedMap()</code> proxies underlying map with adding <code>synchronized</code> blocks on each method. On the other hand <code>ConcurrentHashMap</code> doesn't lock the whole map on read/write operations. Which means all operations in multi thread system are faster.</p>
  
  <p>So what are the benefits of using <code>synchronizedMap()</code> nowadays? I see the only:</p>
  
  <ol>
  <li>it's available since java 1.2 (vs java 1.5 for <code>ConcurrentHashMap</code>)</li>
  <li>can store nullable values (if underlying map can do it)</li>
  </ol>
  
  <p>Are there any other situations when <code>synchronizedMap()</code> is better?</p>