Java has supported multi-threading and concurrency. But There are several problems which occurs when we use Collections concept in multi-threading concept. Most of the Collections classes objects are non-synchronized like ArrayList, LinkedList, HashMap. few classes are synchronized like Vector, Stack, HashTable. But these synchronized classes are not good in terms of performance.
For example : if one thread is iterating a Collection objects and if another thread try to add new element in that iterating object simultaneously then class will throw ConcurrentModificationException in traditional collection. Collection is good in performance if you are not using multi threading.
Java introduce concurrent Collections of multi-threading. The java.util.concurrent package includes a number of additions to the Java Collections Framework. They are an improvement of existing collection APIs and have been designed for concurrent access from multiple threads.
Its categorized by below collection interfaces