public static class ReferenceLists.Singleton<K> extends AbstractReferenceList<K> implements java.util.RandomAccess, java.io.Serializable, java.lang.Cloneable
This class may be useful to implement your own in case you subclass a type-specific list.
AbstractReferenceList.ReferenceRandomAccessSubList<K>, AbstractReferenceList.ReferenceSubList<K>
Modifier and Type | Method and Description |
---|---|
boolean |
addAll(java.util.Collection<? extends K> c) |
boolean |
addAll(int i,
java.util.Collection<? extends K> c)
Adds all of the elements in the specified collection to this list (optional operation).
|
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() |
java.lang.Object |
clone() |
boolean |
contains(java.lang.Object k)
Returns true if this list contains the specified element.
|
void |
forEach(java.util.function.Consumer<? super K> action) |
K |
get(int i) |
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 |
indexOf(java.lang.Object k) |
ObjectListIterator<K> |
iterator()
Returns a type-specific iterator on the elements of this collection.
|
ObjectListIterator<K> |
listIterator()
Returns a type-specific list iterator on the list.
|
ObjectListIterator<K> |
listIterator(int i)
Returns a type-specific list iterator on the list starting at a given index.
|
K |
remove(int i) |
boolean |
remove(java.lang.Object k) |
boolean |
removeAll(java.util.Collection<?> c) |
void |
removeElements(int from,
int to)
Removes (hopefully quickly) elements of this type-specific list.
|
boolean |
removeIf(java.util.function.Predicate<? super K> filter) |
void |
replaceAll(java.util.function.UnaryOperator<K> operator) |
boolean |
retainAll(java.util.Collection<?> c) |
void |
setElements(int index,
K[] a)
Set (hopefully quickly) elements to match the array given.
|
void |
setElements(int index,
K[] a,
int offset,
int length)
Set (hopefully quickly) elements to match the array given.
|
void |
setElements(K[] a)
Set (hopefully quickly) elements to match the array given.
|
int |
size() |
void |
size(int size)
Sets the size of this list.
|
void |
sort(java.util.Comparator<? super K> comparator)
Sorts this list using a sort assured to be stable.
|
ObjectSpliterator<K> |
spliterator()
Returns a type-specific spliterator on the elements 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. |
java.lang.Object[] |
toArray() |
void |
unstableSort(java.util.Comparator<? super K> comparator)
Sorts this list using a sort not assured to be stable.
|
add, add, equals, hashCode, lastIndexOf, peek, pop, push, set, toArray, top, toString
public boolean remove(java.lang.Object k)
public K remove(int i)
AbstractReferenceList
remove
in interface java.util.List<K>
remove
in class AbstractReferenceList<K>
public boolean contains(java.lang.Object k)
AbstractReferenceList
contains
in interface java.util.Collection<K>
contains
in interface java.util.List<K>
contains
in class AbstractReferenceList<K>
List.contains(Object)
public int indexOf(java.lang.Object k)
indexOf
in interface java.util.List<K>
indexOf
in class AbstractReferenceList<K>
public java.lang.Object[] toArray()
toArray
in interface java.util.Collection<K>
toArray
in interface java.util.List<K>
toArray
in class AbstractReferenceList<K>
public ObjectListIterator<K> listIterator()
AbstractReferenceList
listIterator
in interface ReferenceList<K>
listIterator
in interface java.util.List<K>
listIterator
in class AbstractReferenceList<K>
List.listIterator()
public ObjectListIterator<K> iterator()
AbstractReferenceList
iterator
in interface ObjectIterable<K>
iterator
in interface ReferenceCollection<K>
iterator
in interface ReferenceList<K>
iterator
in interface java.lang.Iterable<K>
iterator
in interface java.util.Collection<K>
iterator
in interface java.util.List<K>
iterator
in class AbstractReferenceList<K>
Iterable.iterator()
public ObjectSpliterator<K> spliterator()
ReferenceList
List spliterators must report at least Spliterator.SIZED
and Spliterator.ORDERED
.
See List.spliterator()
for more documentation on the requirements
of the returned spliterator.
spliterator
in interface ObjectIterable<K>
spliterator
in interface ReferenceCollection<K>
spliterator
in interface ReferenceList<K>
spliterator
in interface java.lang.Iterable<K>
spliterator
in interface java.util.Collection<K>
spliterator
in interface java.util.List<K>
public ObjectListIterator<K> listIterator(int i)
AbstractReferenceList
listIterator
in interface ReferenceList<K>
listIterator
in interface java.util.List<K>
listIterator
in class AbstractReferenceList<K>
List.listIterator(int)
public ReferenceList<K> subList(int from, int to)
ReferenceList
from
, inclusive, to the index to
, exclusive.subList
in interface ReferenceList<K>
subList
in interface java.util.List<K>
subList
in class AbstractReferenceList<K>
List.subList(int,int)
public void forEach(java.util.function.Consumer<? super K> action)
AbstractReferenceList
forEach
in interface java.lang.Iterable<K>
forEach
in class AbstractReferenceList<K>
public boolean addAll(int i, java.util.Collection<? extends K> c)
AbstractReferenceList
addAll
in interface java.util.List<K>
addAll
in class AbstractReferenceList<K>
public boolean addAll(java.util.Collection<? extends K> c)
AbstractReferenceList
addAll
in interface java.util.Collection<K>
addAll
in interface java.util.List<K>
addAll
in class AbstractReferenceList<K>
public boolean removeAll(java.util.Collection<?> c)
public boolean retainAll(java.util.Collection<?> c)
public boolean removeIf(java.util.function.Predicate<? super K> filter)
removeIf
in interface java.util.Collection<K>
public void replaceAll(java.util.function.UnaryOperator<K> operator)
replaceAll
in interface java.util.List<K>
public void sort(java.util.Comparator<? super K> comparator)
ReferenceList
Pass null
to sort using natural ordering.
Unless a subclass specifies otherwise, the results of the method if the list is concurrently modified during the sort are unspecified.
sort
in interface ReferenceList<K>
sort
in interface java.util.List<K>
public void unstableSort(java.util.Comparator<? super K> comparator)
ReferenceList
List.sort(java.util.Comparator)
in that the results are
not assured to be stable, but may be a bit faster.
Pass null
to sort using natural ordering.
Unless a subclass specifies otherwise, the results of the method if the list is concurrently modified during the sort are unspecified.
unstableSort
in interface ReferenceList<K>
public void getElements(int from, java.lang.Object[] a, int offset, int length)
AbstractReferenceList
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>
getElements
in class AbstractReferenceList<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 removeElements(int from, int to)
AbstractReferenceList
This is a trivial iterator-based based implementation. It is expected that implementations will override this method with a more optimized version.
removeElements
in interface ReferenceList<K>
removeElements
in class AbstractReferenceList<K>
from
- the start index (inclusive).to
- the end index (exclusive).public void addElements(int index, K[] a)
AbstractReferenceList
addElements
in interface ReferenceList<K>
addElements
in class AbstractReferenceList<K>
index
- the index at which to add elements.a
- the array containing the elements.public void addElements(int index, K[] a, int offset, int length)
AbstractReferenceList
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>
addElements
in class AbstractReferenceList<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 setElements(K[] a)
ReferenceList
setElements
in interface ReferenceList<K>
a
- the array containing the elements.public void setElements(int index, K[] a)
ReferenceList
setElements
in interface ReferenceList<K>
index
- the index at which to start setting elements.a
- the array containing the elements.public void setElements(int index, K[] a, int offset, int length)
ReferenceList
ListIterator iter = listIterator(index);
int i = 0;
while (i < length) {
iter.next();
iter.set(a[offset + i++]);
}
However, the exact implementation may be more efficient, taking into account
whether random access is faster or not, or at the discretion of subclasses,
abuse internals.setElements
in interface ReferenceList<K>
setElements
in class AbstractReferenceList<K>
index
- the index at which to start setting elements.a
- the array containing the elementsoffset
- the offset of the first element to add.length
- the number of elements to add.public int size()
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
in class AbstractReferenceList<K>
size
- the new size.public void clear()
AbstractReferenceList
clear
in interface java.util.Collection<K>
clear
in interface java.util.List<K>
clear
in class AbstractReferenceList<K>
public java.lang.Object clone()
clone
in class java.lang.Object