In Java, most implementations of Map interface provide a
constructor to create copy of another map. But the copy method is
not synchronized.
Therefore, when a thread is copying the map, another thread can
modify it.
To prevent such a scenario, we should use
Collections.synchronizedMap() method to first create a thread-safe
map.
Another way of to create a shallow copy is by using clone() method.
But it is not considered as a recommended approach