ObjectIterable<K>
, ReferenceCollection<K>
, ReferenceList<K>
, Stack<K>
, java.lang.Iterable<K>
, java.util.Collection<K>
, java.util.List<K>
AbstractReferenceList.ReferenceSubList
, ReferenceArrayList
, ReferenceLists.Singleton
public abstract class AbstractReferenceList<K> extends AbstractReferenceCollection<K> implements ReferenceList<K>, Stack<K>
As an additional bonus, this class implements on top of the list operations a type-specific stack.
Modifier and Type | Class | Description |
---|---|---|
static class |
AbstractReferenceList.ReferenceSubList<K> |
A class implementing a sublist view.
|
Modifier and Type | Method | Description |
---|---|---|
void |
add(int index,
K k) |
|
boolean |
add(K k) |
|
boolean |
addAll(int index,
java.util.Collection<? extends K> c) |
Adds all of the elements in the specified collection to this list (optional
operation).
|
boolean |
addAll(java.util.Collection<? extends K> c) |
|
void |
addElements(int index,
K[] a) |
Add (hopefully quickly) elements to this type-specific list.
|
void |
addElements(int index,
K[] a,
int offset,
int length) |
Add (hopefully quickly) elements to this type-specific list.
|
void |
clear() |
|
boolean |
contains(java.lang.Object k) |
Returns true if this list contains the specified element.
|
boolean |
equals(java.lang.Object o) |
|
void |
getElements(int from,
java.lang.Object[] a,
int offset,
int length) |
Copies (hopefully quickly) elements of this type-specific list into the given
array.
|
int |
hashCode() |
Returns the hash code for this list, which is identical to
List.hashCode() . |
int |
indexOf(java.lang.Object k) |
|
ObjectListIterator<K> |
iterator() |
Returns a type-specific iterator on the elements of this collection.
|
int |
lastIndexOf(java.lang.Object k) |
|
ObjectListIterator<K> |
listIterator() |
Returns a type-specific list iterator on the list.
|
ObjectListIterator<K> |
listIterator(int index) |
Returns a type-specific list iterator on the list starting at a given index.
|
K |
peek(int i) |
Peeks at an element on the stack (optional operation).
|
K |
pop() |
Pops the top off the stack.
|
void |
push(K o) |
Pushes the given object on the stack.
|
K |
remove(int i) |
|
void |
removeElements(int from,
int to) |
Removes (hopefully quickly) elements of this type-specific list.
|
K |
set(int index,
K k) |
|
void |
size(int size) |
Sets the size of this list.
|
ReferenceList<K> |
subList(int from,
int to) |
Returns a type-specific view of the portion of this list from the index
from , inclusive, to the index to , exclusive. |
K |
top() |
Peeks at the top of the stack (optional operation).
|
java.lang.String |
toString() |
containsAll, isEmpty, remove, removeAll, retainAll, size, toArray, toArray
public void add(int index, K k)
This implementation always throws an UnsupportedOperationException
.
add
in interface java.util.List<K>
public boolean add(K k)
This implementation delegates to the type-specific version of
List.add(int, Object)
.
public K remove(int i)
This implementation always throws an UnsupportedOperationException
.
remove
in interface java.util.List<K>
public K set(int index, K k)
This implementation always throws an UnsupportedOperationException
.
set
in interface java.util.List<K>
public boolean addAll(int index, java.util.Collection<? extends K> c)
addAll
in interface java.util.List<K>
public boolean addAll(java.util.Collection<? extends K> c)
This implementation delegates to the type-specific version of
List.addAll(int, Collection)
.
public ObjectListIterator<K> iterator()
Note that this specification strengthens the one given in
Iterable.iterator()
, which was already strengthened in the
corresponding type-specific class, but was weakened by the fact that this
interface extends Collection
.
This implementation delegates to listIterator()
.
iterator
in interface java.util.Collection<K>
iterator
in interface java.lang.Iterable<K>
iterator
in interface java.util.List<K>
iterator
in interface ObjectIterable<K>
iterator
in interface ReferenceCollection<K>
iterator
in interface ReferenceList<K>
iterator
in class AbstractReferenceCollection<K>
Iterable.iterator()
public ObjectListIterator<K> listIterator()
This implementation delegates to listIterator(0)
.
listIterator
in interface java.util.List<K>
listIterator
in interface ReferenceList<K>
List.listIterator()
public ObjectListIterator<K> listIterator(int index)
This implementation is based on the random-access methods.
listIterator
in interface java.util.List<K>
listIterator
in interface ReferenceList<K>
List.listIterator(int)
public boolean contains(java.lang.Object k)
This implementation delegates to indexOf()
.
public int indexOf(java.lang.Object k)
indexOf
in interface java.util.List<K>
public int lastIndexOf(java.lang.Object k)
lastIndexOf
in interface java.util.List<K>
public void size(int size)
ReferenceList
If the specified size is smaller than the current size, the last elements are
discarded. Otherwise, they are filled with 0/null
/false
.
size
in interface ReferenceList<K>
size
- the new size.public ReferenceList<K> subList(int from, int to)
ReferenceList
from
, inclusive, to the index to
, exclusive.
Note that this specification strengthens the one given in
List.subList(int,int)
.
subList
in interface java.util.List<K>
subList
in interface ReferenceList<K>
List.subList(int,int)
public void removeElements(int from, int to)
This is a trivial iterator-based implementation. It is expected that implementations will override this method with a more optimized version.
removeElements
in interface ReferenceList<K>
from
- the start index (inclusive).to
- the end index (exclusive).public void addElements(int index, K[] a, int offset, int length)
This is a trivial iterator-based implementation. It is expected that implementations will override this method with a more optimized version.
addElements
in interface ReferenceList<K>
index
- the index at which to add elements.a
- the array containing the elements.offset
- the offset of the first element to add.length
- the number of elements to add.public void addElements(int index, K[] a)
This implementation delegates to the analogous method for array fragments.
addElements
in interface ReferenceList<K>
index
- the index at which to add elements.a
- the array containing the elements.public void getElements(int from, java.lang.Object[] a, int offset, int length)
This is a trivial iterator-based implementation. It is expected that implementations will override this method with a more optimized version.
getElements
in interface ReferenceList<K>
from
- the start index (inclusive).a
- the destination array.offset
- the offset into the destination array where to store the first
element copied.length
- the number of elements to be copied.public void clear()
This implementation delegates to removeElements(int, int)
.
public int hashCode()
List.hashCode()
.public boolean equals(java.lang.Object o)
public void push(K o)
Stack
public K top()
Stack
This default implementation returns peek(0)
.
public K peek(int i)
Stack
This default implementation just throws an UnsupportedOperationException
.
public java.lang.String toString()
toString
in class AbstractReferenceCollection<K>