23 |
|
* copy of the underlying array. <p> |
24 |
|
* |
25 |
|
* This is ordinarily too costly, but it becomes attractive when |
26 |
< |
* traversal operations vastly overwhelm mutations, and, especially |
26 |
> |
* traversal operations vastly outnumber mutations, and, especially |
27 |
|
* when you cannot or don't want to synchronize traversals, yet need |
28 |
|
* to preclude interference among concurrent threads. The iterator |
29 |
|
* method uses a reference to the state of the array at the point that |
30 |
|
* the iterator was created. This array never changes during the |
31 |
< |
* lifetime of the iterator, so interference is impossible. The |
32 |
< |
* iterator will not traverse elements added or changed since the |
31 |
> |
* lifetime of the iterator, so interference is impossible and the iterator |
32 |
> |
* is guaranteed not to throw <tt>ConcurrentModificationException</tt>. The |
33 |
> |
* iterator will not reflect additions, removals, or changes to the List since the |
34 |
|
* iterator was created. |
35 |
|
* <p> |
36 |
|
* |