What is the difference between CopyOnWritearraylist
and Collections.synchronizedList(..)
? When should one be preferred over the other.
Asked
Active
Viewed 3,989 times
14
1 Answers
18
CopyOnWriteArrayList
list should be used when the number of reads vastly outnumber the number of writes. This is because you are trading unnecessary synchronization for expensive array copying on each write.
For example, when you have a List
of event listeners in a multi-threaded environment, you'd want to use CopyOnWriteArrayList
, because
- events are fired, and hence the list is iterated very often
- event listeners are registered rarely

Bozho
- 588,226
- 146
- 1,060
- 1,140
-
Although in slightly different context, but how is CopyOnWriteArrayList different than an unmodifiable List? – AKS Nov 29 '14 at 16:33