Interface ReferenceList<K>
- All Superinterfaces:
Collection<K>
,Iterable<K>
,List<K>
,ObjectIterable<K>
,ReferenceCollection<K>
- All Known Implementing Classes:
AbstractReferenceList
,AbstractReferenceList.ReferenceSubList
,ReferenceArrayList
,ReferenceLists.EmptyList
,ReferenceLists.Singleton
,ReferenceLists.SynchronizedList
,ReferenceLists.SynchronizedRandomAccessList
,ReferenceLists.UnmodifiableList
,ReferenceLists.UnmodifiableRandomAccessList
public interface ReferenceList<K> extends List<K>, ReferenceCollection<K>
List
; provides some additional methods that use
polymorphism to avoid (un)boxing.
Additionally, this interface strengthens iterator()
,
listIterator()
, listIterator(int)
and
subList(int,int)
. The former had been already strengthened upstream,
but unfortunately List
re-specifies it.
Besides polymorphic methods, this interfaces specifies methods to copy into an array or remove contiguous sublists. Although the abstract implementation of this interface provides simple, one-by-one implementations of these methods, it is expected that concrete implementation override them with optimized versions.
- See Also:
List
-
Method Summary
Modifier and Type Method Description 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
getElements(int from, Object[] a, int offset, int length)
Copies (hopefully quickly) elements of this type-specific list into the given array.ObjectListIterator<K>
iterator()
Returns a type-specific iterator on the elements of this list.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.void
removeElements(int from, int to)
Removes (hopefully quickly) elements of this type-specific list.default void
setElements(int index, K[] a)
Set (hopefully quickly) elements to match the array given.default void
setElements(int index, K[] a, int offset, int length)
Set (hopefully quickly) elements to match the array given.default void
setElements(K[] a)
Set (hopefully quickly) elements to match the array given.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 indexfrom
, inclusive, to the indexto
, exclusive.default void
unstableSort(Comparator<? super K> comparator)
Sorts this list using a sort not assured to be stable.Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
-
Method Details
-
iterator
ObjectListIterator<K> iterator()Returns a type-specific iterator on the elements of this list.Note that this specification strengthens the one given in
List.iterator()
. It would not be normally necessary, butIterable.iterator()
is bizarrily re-specified inList
.- Specified by:
iterator
in interfaceCollection<K>
- Specified by:
iterator
in interfaceIterable<K>
- Specified by:
iterator
in interfaceList<K>
- Specified by:
iterator
in interfaceObjectIterable<K>
- Specified by:
iterator
in interfaceReferenceCollection<K>
- Returns:
- an iterator on the elements of this list.
- See Also:
Iterable.iterator()
-
listIterator
ObjectListIterator<K> listIterator()Returns a type-specific list iterator on the list.- Specified by:
listIterator
in interfaceList<K>
- See Also:
List.listIterator()
-
listIterator
Returns a type-specific list iterator on the list starting at a given index.- Specified by:
listIterator
in interfaceList<K>
- See Also:
List.listIterator(int)
-
subList
Returns a type-specific view of the portion of this list from the indexfrom
, inclusive, to the indexto
, exclusive.Note that this specification strengthens the one given in
List.subList(int,int)
.- Specified by:
subList
in interfaceList<K>
- See Also:
List.subList(int,int)
-
size
void size(int size)Sets the size of this list.If the specified size is smaller than the current size, the last elements are discarded. Otherwise, they are filled with 0/
null
/false
.- Parameters:
size
- the new size.
-
getElements
Copies (hopefully quickly) elements of this type-specific list into the given array.- Parameters:
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.
-
removeElements
void removeElements(int from, int to)Removes (hopefully quickly) elements of this type-specific list.- Parameters:
from
- the start index (inclusive).to
- the end index (exclusive).
-
addElements
Add (hopefully quickly) elements to this type-specific list.- Parameters:
index
- the index at which to add elements.a
- the array containing the elements.
-
addElements
Add (hopefully quickly) elements to this type-specific list.- Parameters:
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.
-
setElements
Set (hopefully quickly) elements to match the array given.- Parameters:
a
- the array containing the elements.- Since:
- 8.3.0
-
setElements
Set (hopefully quickly) elements to match the array given.- Parameters:
index
- the index at which to start setting elements.a
- the array containing the elements.- Since:
- 8.3.0
-
setElements
Set (hopefully quickly) elements to match the array given. Sets each in this list to the corresponding elements in the array, as if byListIterator iter = listIterator(index); int i = 0; while (i < length) { iter.next(); iter.set(a[offset + i++]); }
- Parameters:
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.- Since:
- 8.3.0
-
unstableSort
Sorts this list using a sort not assured to be stable. This differs fromList.sort(java.util.Comparator)
in that the results are not assured to be stable, but may be a bit faster.Unless a subclass specifies otherwise, the results of the method if the list is concurrently modified during the sort are unspecified.
- Since:
- 8.3.0
-