public static class ReferenceLists.EmptyList<K> extends ReferenceCollections.EmptyCollection<K> implements ReferenceList<K>, RandomAccess, Serializable, Cloneable
This class may be useful to implement your own in case you subclass a type-specific list.
| Modifier and Type | Method and Description |
|---|---|
void |
add(int index,
K k)
Inserts the specified element at the specified position in this list
(optional operation).
|
boolean |
addAll(int i,
Collection<? extends K> c)
Inserts all of the elements in the specified collection into this
list at the specified position (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.
|
Object |
clone()
Creates and returns a copy of this object.
|
boolean |
equals(Object o)
Indicates whether some other object is "equal to" this one.
|
K |
get(int i)
Returns the element at the specified position in this list.
|
void |
getElements(int from,
Object[] a,
int offset,
int length)
Copies (hopefully quickly) elements of this type-specific list into the
given array.
|
int |
hashCode()
Returns a hash code value for the object.
|
int |
indexOf(Object k)
Returns the index of the first occurrence of the specified element
in this list, or -1 if this list does not contain the element.
|
ObjectListIterator<K> |
iterator()
Returns an iterator over the elements contained in this collection.
|
int |
lastIndexOf(Object k)
Returns the index of the last occurrence of the specified element
in this list, or -1 if this list does not contain the element.
|
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)
Removes the element at the specified position in this list (optional
operation).
|
boolean |
remove(Object k)
Removes a single instance of the specified element from this
collection, if it is present (optional operation).
|
void |
removeElements(int from,
int to)
Removes (hopefully quickly) elements of this type-specific list.
|
K |
set(int index,
K k)
Replaces the element at the specified position in this list with the
specified element (optional operation).
|
void |
size(int s)
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. |
String |
toString()
Returns a string representation of this collection.
|
addAll, clear, contains, removeAll, retainAll, size, toArrayadd, containsAll, isEmpty, toArrayadd, addAll, clear, contains, containsAll, isEmpty, removeAll, replaceAll, retainAll, size, sort, spliterator, toArray, toArrayparallelStream, removeIf, streampublic K get(int i)
java.util.Listpublic boolean remove(Object k)
java.util.AbstractCollectionThis implementation iterates over the collection looking for the specified element. If it finds the element, it removes the element from the collection using the iterator's remove method.
Note that this implementation throws an UnsupportedOperationException if the iterator returned by this collection's iterator method does not implement the remove method and this collection contains the specified object.
remove in interface Collection<K>remove in interface List<K>remove in class AbstractCollection<K>k - element to be removed from this collection, if presentpublic K remove(int i)
java.util.Listpublic void add(int index,
K k)
java.util.Listpublic K set(int index, K k)
java.util.Listpublic int indexOf(Object k)
java.util.Listpublic int lastIndexOf(Object k)
java.util.ListlastIndexOf in interface List<K>k - element to search forpublic boolean addAll(int i,
Collection<? extends K> c)
java.util.Listpublic ObjectListIterator<K> listIterator()
ReferenceListlistIterator in interface ReferenceList<K>listIterator in interface List<K>List.listIterator()public ObjectListIterator<K> iterator()
java.util.AbstractCollectioniterator in interface ObjectIterable<K>iterator in interface ReferenceCollection<K>iterator in interface ReferenceList<K>iterator in interface Iterable<K>iterator in interface Collection<K>iterator in interface List<K>iterator in class ReferenceCollections.EmptyCollection<K>Iterable.iterator()public ObjectListIterator<K> listIterator(int i)
ReferenceListlistIterator in interface ReferenceList<K>listIterator in interface List<K>i - index of the first element to be returned from the
list iterator (by a call to next)List.listIterator(int)public ReferenceList<K> subList(int from, int to)
ReferenceListfrom, inclusive, to the index to, exclusive.
Note that this specification strengthens the one given in
List.subList(int,int).
subList in interface ReferenceList<K>subList in interface List<K>from - low endpoint (inclusive) of the subListto - high endpoint (exclusive) of the subListList.subList(int,int)public void getElements(int from,
Object[] a,
int offset,
int length)
ReferenceListgetElements 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 removeElements(int from,
int to)
ReferenceListremoveElements 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)
ReferenceListaddElements 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)
ReferenceListaddElements in interface ReferenceList<K>index - the index at which to add elements.a - the array containing the elements.public void size(int s)
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>s - the new size.public Object clone()
java.lang.Objectx, the expression:
will be true, and that the expression:x.clone() != x
will bex.clone().getClass() == x.getClass()
true, but these are not absolute requirements.
While it is typically the case that:
will bex.clone().equals(x)
true, this is not an absolute requirement.
By convention, the returned object should be obtained by calling
super.clone. If a class and all of its superclasses (except
Object) obey this convention, it will be the case that
x.clone().getClass() == x.getClass().
By convention, the object returned by this method should be independent
of this object (which is being cloned). To achieve this independence,
it may be necessary to modify one or more fields of the object returned
by super.clone before returning it. Typically, this means
copying any mutable objects that comprise the internal "deep structure"
of the object being cloned and replacing the references to these
objects with references to the copies. If a class contains only
primitive fields or references to immutable objects, then it is usually
the case that no fields in the object returned by super.clone
need to be modified.
The method clone for class Object performs a
specific cloning operation. First, if the class of this object does
not implement the interface Cloneable, then a
CloneNotSupportedException is thrown. Note that all arrays
are considered to implement the interface Cloneable and that
the return type of the clone method of an array type T[]
is T[] where T is any reference or primitive type.
Otherwise, this method creates a new instance of the class of this
object and initializes all its fields with exactly the contents of
the corresponding fields of this object, as if by assignment; the
contents of the fields are not themselves cloned. Thus, this method
performs a "shallow copy" of this object, not a "deep copy" operation.
The class Object does not itself implement the interface
Cloneable, so calling the clone method on an object
whose class is Object will result in throwing an
exception at run time.
public int hashCode()
java.lang.ObjectHashMap.
The general contract of hashCode is:
hashCode method
must consistently return the same integer, provided no information
used in equals comparisons on the object is modified.
This integer need not remain consistent from one execution of an
application to another execution of the same application.
equals(Object)
method, then calling the hashCode method on each of
the two objects must produce the same integer result.
Object.equals(java.lang.Object)
method, then calling the hashCode method on each of the
two objects must produce distinct integer results. However, the
programmer should be aware that producing distinct integer results
for unequal objects may improve the performance of hash tables.
As much as is reasonably practical, the hashCode method defined by
class Object does return distinct integers for distinct
objects. (This is typically implemented by converting the internal
address of the object into an integer, but this implementation
technique is not required by the
Java™ programming language.)
hashCode in interface Collection<K>hashCode in interface List<K>hashCode in class ReferenceCollections.EmptyCollection<K>Object.equals(java.lang.Object),
System.identityHashCode(java.lang.Object)public boolean equals(Object o)
java.lang.Object
The equals method implements an equivalence relation
on non-null object references:
x, x.equals(x) should return
true.
x and y, x.equals(y)
should return true if and only if
y.equals(x) returns true.
x, y, and z, if
x.equals(y) returns true and
y.equals(z) returns true, then
x.equals(z) should return true.
x and y, multiple invocations of
x.equals(y) consistently return true
or consistently return false, provided no
information used in equals comparisons on the
objects is modified.
x,
x.equals(null) should return false.
The equals method for class Object implements
the most discriminating possible equivalence relation on objects;
that is, for any non-null reference values x and
y, this method returns true if and only
if x and y refer to the same object
(x == y has the value true).
Note that it is generally necessary to override the hashCode
method whenever this method is overridden, so as to maintain the
general contract for the hashCode method, which states
that equal objects must have equal hash codes.
equals in interface Collection<K>equals in interface List<K>equals in class ReferenceCollections.EmptyCollection<K>o - the reference object with which to compare.true if this object is the same as the obj
argument; false otherwise.Object.hashCode(),
HashMappublic String toString()
java.util.AbstractCollectionString.valueOf(Object).toString in class AbstractReferenceCollection<K>