In Java 1.5 many Concurrent collection classes were added in SDK.
These are ConcurrentHashMap, CopyOnWriteArrayList,
BlockingQueue etc.
Java also provides utility methods to get a synchronized copy of
collection like ArrayList, HashMap etc. by using
Collections.synchronizedList(), Collections.synchronizedMap()
methods.
The main difference is in performance. Concurrent collection
classes have better performance than synchronized collection
classes because they lock only a portion of the class to achieve
concurrency and thread-safety