CopyOnWriteArrayList was introduced in Java 1.5. It implements
List interface.
It provides better concurrent access methods than a Synchronized
List.
In CopyOnWriteList, concurrency is achieved by copying ArrayList
over each write and replace with original instead of locking.
CopyOnWriteArrayList also does not throw any
ConcurrentModification Exception during Iteration.
It is a thread-safe list.
It is different from a Vector in terms of Concurrency.
CopyOnWriteArrayList provides better Concurrency by reducing
contention among readers and writers.