public class XByteIndexedList extends XByteCollectionBase implements XByteList, RandomAccess
This class represents a random access collection with real-time behavior (smooth capacity increase) for a primitivive list of bytes
This class has the following advantages over the widely used
java.util.ArrayList:
byte
and Byte.shared. Iterations over the XByteIndexedList values are faster when
performed using the get(int) method rather than using collection
records or iterators:[code]
for (int i = 0, n = list.size(); i < n; i++) {
list.get(i);
}[/code]
This class was based on collections code from http://javolution.org, but modified for use outside of realtime jvms.
| Constructor and Description |
|---|
XByteIndexedList()
Creates a list of small initial capacity.
|
XByteIndexedList(int capacity)
Creates a list of specified initial capacity; unless the list size
reaches the specified capacity, operations on this list will not
allocate memory (no lazy object creation).
|
XByteIndexedList(XByteCollection values)
Creates a list containing the specified values, in the order they
are returned by the collection's iterator.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
add(byte value)
Appends the specified value to the end of this list.
|
void |
add(int index,
byte value)
Inserts the specified value at the specified position in this list.
|
boolean |
addAll(int index,
XByteCollection values)
Inserts all of the values in the specified collection into this
list at the specified position.
|
void |
addLast(byte value)
Appends the specified value to the end of this list (fast).
|
void |
clear()
Removes all of the values from this collection (optional operation).
|
boolean |
contains(byte value)
Indicates if this collection contains the specified value.
|
void |
delete(XCollection.Record record)
Deletes the specified record from this collection.
|
byte |
get(int index)
Returns the element at the specified index.
|
byte |
getFirst()
Returns the first value of this list.
|
byte |
getLast()
Returns the last value of this list.
|
XCollection.Record |
head()
Returns the head record of this collection; it is the record such as
head().getNext() holds the first collection value. |
int |
indexOf(byte value)
Returns the index in this list of the first occurrence of the specified
value, or -1 if this list does not contain this value.
|
XByteIterator |
iterator()
Returns an iterator over the elements in this list
|
int |
lastIndexOf(byte value)
Returns the index in this list of the last occurrence of the specified
value, or -1 if this list does not contain this value.
|
XByteListIterator |
listIterator()
Returns a list iterator over the elements in this list
|
XByteListIterator |
listIterator(int index)
Returns a list iterator from the specified position
|
static XByteIndexedList |
newInstance()
Returns a new, preallocated or recycled
XByteIndexedList instance |
byte |
remove(int index)
Removes the value at the specified position from this list.
|
byte |
removeLast()
Removes and returns the last value of this list (fast).
|
void |
removeRange(int fromIndex,
int toIndex)
Removes the values between
[fromIndex..toIndex[ |
void |
reset() |
byte |
set(int index,
byte value)
Replaces the value at the specified position in this list with the
specified value.
|
void |
setSize(int size)
Sets the size of this list.
|
int |
size()
Returns the number of values in this collection.
|
void |
sort(boolean ascending) |
XByteList |
subList(int fromIndex,
int toIndex)
Returns a view of the portion of this list between the specified
If the specified indexes are equal, the returned list is empty.
|
XCollection.Record |
tail()
Returns the tail record of this collection; it is the record such as
tail().getPrevious() holds the last collection value. |
void |
trimToSize()
Reduces the capacity of this list to the current size (minimize
storage space).
|
XByteList |
unmodifiable()
Returns the unmodifiable view associated to this collection.
|
byte |
valueOf(XCollection.Record record)
Returns the collection value for the specified record.
|
addAll, containsAll, equals, hashCode, isEmpty, remove, removeAll, retainAll, reusableIterator, shared, supportsIteratorModifications, toArray, toArray, toStringaddAll, containsAll, equals, hashCode, isEmpty, remove, removeAll, retainAll, toArray, toArrayreusableIterator, shared, supportsIteratorModificationspublic XByteIndexedList()
public XByteIndexedList(int capacity)
capacity - the initial capacity.public XByteIndexedList(XByteCollection values)
values - the values to be placed into this list.public static XByteIndexedList newInstance()
XByteIndexedList instanceXByteIndexedList instance.public void setSize(int size)
null elements are added; otherwise
the last elements are removed until the desired size is reached.size - the new size.public final byte get(int index)
get in interface XByteListindex - index of value to return.IndexOutOfBoundsException - if (index < 0) ||
(index >= size())public final byte set(int index,
byte value)
set in interface XByteListindex - index of value to replace.value - value to be stored at the specified position.IndexOutOfBoundsException - if (index < 0) ||
(index >= size())public final boolean add(byte value)
add in interface XByteCollectionadd in interface XByteListadd in class XByteCollectionBasevalue - the value to be appended to this list.true (as per the general contract of the
Collection.add method).public final byte getFirst()
NoSuchElementException - if this list is empty.public final byte getLast()
NoSuchElementException - if this list is empty.public final void addLast(byte value)
value - the value to be added.public final byte removeLast()
NoSuchElementException - if this list is empty.public final void clear()
XByteCollectionBaseclear in interface XByteCollectionclear in interface XByteListclear in class XByteCollectionBasepublic void reset()
public final boolean addAll(int index,
XByteCollection values)
Note: If this method is used concurrent access must be synchronized (the list is no more thread-safe).
addAll in interface XByteListindex - the index at which to insert first value from the specified
collection.values - the values to be inserted into this list.true if this list changed as a result of the call;
false otherwise.IndexOutOfBoundsException - if (index < 0) ||
(index > size())public final void add(int index,
byte value)
Note: If this method is used concurrent access must be synchronized (the list is no more thread-safe).
add in interface XByteListindex - the index at which the specified value is to be inserted.value - the value to be inserted.IndexOutOfBoundsException - if (index < 0) ||
(index > size())public final byte remove(int index)
Note: If this method is used concurrent access must be synchronized (the list is no more thread-safe).
remove in interface XByteListindex - the index of the value to removed.IndexOutOfBoundsException - if (index < 0) ||
(index >= size())public final void removeRange(int fromIndex,
int toIndex)
[fromIndex..toIndex[ from
this list.
Note: If this method is used concurrent access must be synchronized
(the list is no more thread-safe).
fromIndex - the beginning index, inclusive.toIndex - the ending index, exclusive.IndexOutOfBoundsException - if (fromIndex < 0) || (toIndex < 0)
|| (fromIndex > toIndex) || (toIndex > this.size())public final int indexOf(byte value)
public final int lastIndexOf(byte value)
lastIndexOf in interface XByteListvalue - the value to search for.public XByteIterator iterator()
iterator in interface XByteCollectioniterator in interface XByteListiterator in class XByteCollectionBasepublic XByteListIterator listIterator()
listIterator in interface XByteListpublic XByteListIterator listIterator(int index)
listIterator in interface XByteListindex - the index of first value to be returned from the
list iterator (by a call to the next method).IndexOutOfBoundsException - if the index is out of range
[code](index < 0 || index > size())[/code]public final XByteList subList(int fromIndex, int toIndex)
indexOf and
lastIndexOf, and all of the algorithms in the
Collections class can be applied to a subList.
The semantics of the list returned by this method become undefined if
the backing list (i.e., this list) is structurally modified in
any way other than via the returned list (structural modifications are
those that change the size of this list, or otherwise perturb it in such
a fashion that iterations in progress may yield incorrect results).subList in interface XByteListfromIndex - low endpoint (inclusive) of the subList.toIndex - high endpoint (exclusive) of the subList.IndexOutOfBoundsException - if [code](fromIndex < 0 ||
toIndex > size || fromIndex > toIndex)[/code]public final void trimToSize()
public void sort(boolean ascending)
public final int size()
XByteCollectionBasesize in interface XByteCollectionsize in interface XByteListsize in class XByteCollectionBasepublic final XCollection.Record head()
XByteCollectionBasehead().getNext() holds the first collection value.head in interface XByteCollectionhead in class XByteCollectionBasepublic final XCollection.Record tail()
XByteCollectionBasetail().getPrevious() holds the last collection value.tail in interface XByteCollectiontail in class XByteCollectionBasepublic final byte valueOf(XCollection.Record record)
XByteCollectionBasevalueOf in interface XByteCollectionvalueOf in class XByteCollectionBaserecord - the record whose current value is returned.public final void delete(XCollection.Record record)
XByteCollectionBaseImplementation must ensure that removing a record from the collection does not affect in any way the records preceding the record being removed (it might affect the next records though, e.g. in a list collection, the indices of the subsequent records will change).
delete in interface XByteCollectiondelete in class XByteCollectionBaserecord - the record to be removed.public XByteList unmodifiable()
XByteCollectionBaseUnsupportedOperationException being thrown.unmodifiable in interface XByteCollectionunmodifiable in class XByteCollectionBasepublic final boolean contains(byte value)
XByteCollectionBasecontains in interface XByteCollectioncontains in interface XByteListcontains in class XByteCollectionBasevalue - the value whose presence in this collection
is to be tested.true if this collection contains the specified
value;false otherwise.Copyright © 2019 Neeve Research, LLC. All Rights Reserved.