In low-concurrency situations, the overhead of striping might outweigh benefits.
ConcurrentHashMap is optimized for high-concurrency scenarios. In cases where there are few simultaneous threads, the overhead of managing its internal stripes may not provide a significant advantage over Collections.synchronizedMap, which has simpler synchronization. For example, in a small-scale application with limited users, the simpler synchronizedMap may be sufficient.
Additional Notes
Why might ConcurrentHashMap not always outperform synchronizedMap?