Because ConcurrentHashMap has far better concurrent performance that you would get with a synchronized HashMap. The javadocs of ConcurrentHashMap go into more detail on this.
posted 7 years ago
And because if you used an unsynchronized HashMap, it would be even faster, but unreliable - sometimes giving incorrect results, and on rare occasions throwing nonsensical exceptions for no apparent reason. Extremely difficult to understand or debug.
The world's cheapest jedi mind trick: "Aw c'mon, why not read this tiny ad?"