@GwtCompatible public abstract class ForwardingList<E> extends ForwardingCollection<E> implements List <E>
This class does not implement RandomAccess. If the delegate supports random access, the ForwardingList subclass should implement the RandomAccess interface.
Warning: The methods of ForwardingList forward indiscriminately to the methods of the delegate. For example, overriding add(int, E) alone will not change the behavior of addAll(int, java.util.Collection<? extends E>), which can lead to unexpected behavior. In this case, you should override addAll as well, either providing your own implementation, or delegating to the provided standardAddAll method.
The standard methods and any collection views they return are not guaranteed to be thread-safe, even when all of the methods that they depend on are thread-safe.
| Modifier | Constructor and Description |
|---|---|
protected |
ForwardingList()
Constructor for use by subclasses.
|
| Modifier and Type | Method and Description |
|---|---|
void |
add(int index, E element)
|
boolean |
addAll(int index, Collection
|
protected abstract List |
delegate()
Returns the backing delegate instance that methods are forwarded to.
|
boolean |
equals(Object
|
E |
get(int index)
|
int |
hashCode()
|
int |
indexOf(Object
|
int |
lastIndexOf(Object
|
ListIterator |
listIterator()
|
ListIterator |
listIterator(int index)
|
E |
remove(int index)
|
E |
set(int index, E element)
|
protected boolean |
standardAdd(E element)
A sensible default implementation of
ForwardingCollection, in terms of
add(int, Object).
|
protected boolean |
standardAddAll(int index, Iterable
A sensible default implementation of
addAll(int, Collection), in terms of the
add method of
listIterator(int).
|
protected boolean |
standardEquals(Object
A sensible definition of
equals(Object) in terms of
ForwardingCollection and
ForwardingCollection.
|
protected int |
standardHashCode()
A sensible definition of
hashCode() in terms of
ForwardingCollection.
|
protected int |
standardIndexOf(Object
A sensible default implementation of
indexOf(java.lang.Object), in terms of
listIterator().
|
protected Iterator |
standardIterator()
A sensible default implementation of
ForwardingCollection, in terms of
listIterator().
|
protected int |
standardLastIndexOf(Object
A sensible default implementation of
lastIndexOf(java.lang.Object), in terms of
listIterator(int).
|
protected ListIterator |
standardListIterator()
A sensible default implementation of
listIterator(), in terms of
listIterator(int).
|
protected ListIterator |
standardListIterator(int start)
A sensible default implementation of
listIterator(int), in terms of
ForwardingCollection,
get(int),
set(int, Object),
add(int, Object), and
remove(int).
|
protected List |
standardSubList(int fromIndex, int toIndex)
A sensible default implementation of
subList(int, int).
|
List |
subList(int fromIndex, int toIndex)
|
add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, removeAll, retainAll, size, standardAddAll, standardClear, standardContains, standardContainsAll, standardIsEmpty, standardRemove, standardRemoveAll, standardRetainAll, standardToArray, standardToArray, standardToString, toArray, toArraytoStringclone, finalize, getClass, notify, notifyAll, wait, wait, waitadd, addAll, clear, contains, containsAll, isEmpty, iterator, remove, removeAll, replaceAll, retainAll, size, sort, spliterator, toArray, toArrayparallelStream, removeIf, streamprotected abstract List<E> delegate()
ForwardingObject
ForwardingSet.delegate() . Concrete subclasses override this method to supply the instance being decorated.
public void add(int index,
E element)public boolean addAll(int index,
Collection<? extends E> elements) public E get(int index)
public int indexOf(Objectelement)
public int lastIndexOf(Objectelement)
public ListIterator<E> listIterator()
public ListIterator<E> listIterator(int index)
public E remove(int index)
public boolean equals(Objectobject)
public int hashCode()
protected boolean standardAdd(E element)
ForwardingCollection.add(Object) , in terms of
add(int, Object). If you override
add(int, Object), you may wish to override
ForwardingCollection.add(Object) to forward to this implementation.
protected boolean standardAddAll(int index,
Iterable<? extends E> elements)
addAll(int, Collection), in terms of the
add method of
listIterator(int). If you override
listIterator(int), you may wish to override
addAll(int, Collection) to forward to this implementation.
protected int standardIndexOf(Objectelement)
indexOf(java.lang.Object), in terms of
listIterator(). If you override
listIterator(), you may wish to override
indexOf(java.lang.Object) to forward to this implementation.
protected int standardLastIndexOf(Objectelement)
lastIndexOf(java.lang.Object), in terms of
listIterator(int). If you override
listIterator(int), you may wish to override
lastIndexOf(java.lang.Object) to forward to this implementation.
protected Iterator<E> standardIterator()
ForwardingCollection.iterator() , in terms of
listIterator(). If you override
listIterator(), you may wish to override
ForwardingCollection.iterator() to forward to this implementation.
protected ListIterator<E> standardListIterator()
listIterator(), in terms of
listIterator(int). If you override
listIterator(int), you may wish to override
listIterator() to forward to this implementation.
@Beta protected ListIterator<E> standardListIterator(int start)
listIterator(int), in terms of
ForwardingCollection.size() ,
get(int),
set(int, Object),
add(int, Object), and
remove(int). If you override any of these methods, you may wish to override
listIterator(int) to forward to this implementation.
@Beta protected List<E> standardSubList(int fromIndex, int toIndex)
subList(int, int). If you override any other methods, you may wish to override
subList(int, int) to forward to this implementation.
@Beta protected boolean standardEquals(Objectobject)
equals(Object) in terms of
ForwardingCollection.size() and
ForwardingCollection.iterator() . If you override either of those methods, you may wish to override
equals(Object) to forward to this implementation.
@Beta protected int standardHashCode()
hashCode() in terms of
ForwardingCollection.iterator() . If you override
ForwardingCollection.iterator() , you may wish to override
hashCode() to forward to this implementation.