E - the type of elements returned by the list iterable's list iteratorpublic class SnapshotCloneListIterable<E> extends CloneListIterable<E>
SnapshotCloneListIterable returns a list iterator on a
"snapshot" of a list, allowing for concurrent access to the original list.
A copy of the list is created when the list iterable is constructed.
As a result, the contents of the list will be the same with
every call to iterator(), even if the original list is modified via
the list iterator's mutation methods.
The original list passed to the SnapshotCloneListIterable's
constructor should be thread-safe (e.g. Vector);
otherwise you run the risk of a corrupted list.
By default, the list iterator returned by a SnapshotCloneListIterable does not
support the ListIterator mutation operations; this is because it does not
have access to the original list. But if the SnapshotCloneListIterable
is supplied with a CloneListIterator.Mutator
it will delegate the
ListIterator mutation operations to the Mutator.
Alternatively, a subclass can override the list iterable's mutation
methods.
This list iterable is useful for multiple passes over a list that should not be changed (e.g. by another thread) between passes.
| Modifier and Type | Class and Description |
|---|---|
protected static class |
SnapshotCloneListIterable.LocalCloneListIterator<E>
provide access to "internal" constructor
|
CloneListIterable.DefaultMutator| Constructor and Description |
|---|
SnapshotCloneListIterable(java.util.List<? extends E> list)
Construct a "snapshot" list iterable for the specified list.
|
SnapshotCloneListIterable(java.util.List<? extends E> list,
CloneListIterator.Mutator<E> mutator)
Construct a "snapshot" list iterable for the specified list.
|
| Modifier and Type | Method and Description |
|---|---|
java.util.ListIterator<E> |
iterator() |
java.lang.String |
toString() |
add, buildDefaultMutator, remove, setpublic SnapshotCloneListIterable(java.util.List<? extends E> list)
ListIterator modify operations will not be supported
by the list iterator returned by iterator()
unless a subclass overrides the list iterable's modify
method.public SnapshotCloneListIterable(java.util.List<? extends E> list, CloneListIterator.Mutator<E> mutator)
public java.util.ListIterator<E> iterator()
ListIterablepublic java.lang.String toString()
toString in class java.lang.Object