public abstract class AbstractByteList extends AbstractList implements ByteBufferConsumer
byte
elements; abstract.Modifier and Type | Field and Description |
---|---|
protected int |
size
The size of the list.
|
Constructor and Description |
---|
AbstractByteList() |
Modifier and Type | Method and Description |
---|---|
void |
add(byte element)
Appends the specified element to the end of this list.
|
void |
addAllOf(AbstractByteList other)
Appends all elements of the specified list to the receiver.
|
void |
addAllOf(ByteArrayList other)
Appends the specified list to the end of this list.
|
void |
addAllOfFromTo(AbstractByteList other,
int from,
int to)
Appends the part of the specified list between
from (inclusive) and to (inclusive) to the
receiver. |
void |
beforeInsert(int index,
byte element)
Inserts the specified element before the specified position into the receiver.
|
void |
beforeInsertAllOfFromTo(int index,
AbstractByteList other,
int from,
int to)
Inserts the part of the specified list between
otherFrom (inclusive) and otherTo
(inclusive) before the specified position into the receiver. |
protected void |
beforeInsertDummies(int index,
int length)
Inserts length dummy elements before the specified position into the receiver.
|
int |
binarySearch(byte key)
Searches the receiver for the specified value using the binary search algorithm.
|
int |
binarySearchFromTo(byte key,
int from,
int to)
Searches the receiver for the specified value using the binary search algorithm.
|
Object |
clone()
Returns a deep copy of the receiver.
|
boolean |
contains(byte elem)
Returns true if the receiver contains the specified element.
|
void |
delete(byte element)
Deletes the first element from the receiver that is identical to the specified element.
|
byte[] |
elements()
Returns the elements currently stored, possibly including invalid elements between size and capacity.
|
AbstractByteList |
elements(byte[] elements)
Sets the receiver's elements to be the specified array.
|
abstract void |
ensureCapacity(int minCapacity)
Ensures that the receiver can hold at least the specified number of elements without needing to allocate new
internal memory.
|
boolean |
equals(Object otherObj)
Compares the specified Object with the receiver.
|
void |
fillFromToWith(int from,
int to,
byte val)
Sets the specified range of elements in the specified array to the specified value.
|
boolean |
forEach(ByteProcedure procedure)
Applies a procedure to each element of the receiver, if any.
|
byte |
get(int index)
Returns the element at the specified position in the receiver.
|
protected abstract byte |
getQuick(int index)
Returns the element at the specified position in the receiver; WARNING: Does not check preconditions.
|
int |
indexOf(byte element)
Returns the index of the first occurrence of the specified element.
|
int |
indexOfFromTo(byte element,
int from,
int to)
Returns the index of the first occurrence of the specified element.
|
int |
lastIndexOf(byte element)
Returns the index of the last occurrence of the specified element.
|
int |
lastIndexOfFromTo(byte element,
int from,
int to)
Returns the index of the last occurrence of the specified element.
|
void |
mergeSortFromTo(int from,
int to)
Sorts the specified range of the receiver into ascending order.
|
void |
mergeSortFromTo(int from,
int to,
ByteComparator c)
Sorts the receiver according to the order induced by the specified comparator.
|
AbstractByteList |
partFromTo(int from,
int to)
Returns a new list of the part of the receiver between
from , inclusive, and to ,
inclusive. |
void |
quickSortFromTo(int from,
int to)
Sorts the specified range of the receiver into ascending numerical order.
|
void |
quickSortFromTo(int from,
int to,
ByteComparator c)
Sorts the receiver according to the order induced by the specified comparator.
|
boolean |
removeAll(AbstractByteList other)
Removes from the receiver all elements that are contained in the specified list.
|
void |
removeFromTo(int from,
int to)
Removes from the receiver all elements whose index is between
from , inclusive and to ,
inclusive. |
void |
replaceFromToWithFrom(int from,
int to,
AbstractByteList other,
int otherFrom)
Replaces a number of elements in the receiver with the same number of elements of another list.
|
void |
replaceFromToWithFromTo(int from,
int to,
AbstractByteList other,
int otherFrom,
int otherTo)
Replaces the part between
from (inclusive) and to (inclusive) with the other list's part
between otherFrom and otherTo . |
boolean |
retainAll(AbstractByteList other)
Retains (keeps) only the elements in the receiver that are contained in the specified other list.
|
void |
reverse()
Reverses the elements of the receiver.
|
void |
set(int index,
byte element)
Replaces the element at the specified position in the receiver with the specified element.
|
protected abstract void |
setQuick(int index,
byte element)
Replaces the element at the specified position in the receiver with the specified element; WARNING: Does not
check preconditions.
|
protected void |
setSizeRaw(int newSize)
Sets the size of the receiver without modifying it otherwise.
|
int |
size()
Returns the number of elements contained in the receiver.
|
AbstractByteList |
times(int times)
Returns a list which is a concatenation of
times times the receiver. |
byte[] |
toArray(byte[] values) |
List<Byte> |
toList()
Returns a
ArrayList containing all the elements in the receiver. |
String |
toString()
Returns a string representation of the receiver, containing the String representation of each element.
|
checkRange, checkRangeFromTo, clear, isEmpty, mergeSort, quickSort, remove, setSize, sort, sortFromTo, trimToSize
protected int size
public void add(byte element)
element
- element to be appended to this list.public void addAllOf(AbstractByteList other)
other
- the list of which all elements shall be appended.public void addAllOfFromTo(AbstractByteList other, int from, int to)
from
(inclusive) and to
(inclusive) to the
receiver.other
- the list to be added to the receiver.from
- the index of the first element to be appended (inclusive).to
- the index of the last element to be appended (inclusive).IndexOutOfBoundsException
- index is out of range (other.size()>0 && (from<0 || from>to ||
to>=other.size())).public void addAllOf(ByteArrayList other)
addAllOf
in interface ByteBufferConsumer
other
- the list to be appended.public void beforeInsert(int index, byte element)
index
- index before which the specified element is to be inserted (must be in [0,size]).element
- element to be inserted.IndexOutOfBoundsException
- index is out of range (index < 0 || index > size()).public void beforeInsertAllOfFromTo(int index, AbstractByteList other, int from, int to)
otherFrom
(inclusive) and otherTo
(inclusive) before the specified position into the receiver. Shifts the element currently at that position (if any)
and any subsequent elements to the right.index
- index before which to insert first element from the specified list (must be in [0,size])..other
- list of which a part is to be inserted into the receiver.from
- the index of the first element to be inserted (inclusive).to
- the index of the last element to be inserted (inclusive).IndexOutOfBoundsException
- index is out of range (other.size()>0 && (from<0 || from>to ||
to>=other.size())).IndexOutOfBoundsException
- index is out of range (index < 0 || index > size()).protected void beforeInsertDummies(int index, int length)
beforeInsertDummies
in class AbstractList
index
- index before which to insert dummy elements (must be in [0,size])..length
- number of dummy elements to be inserted.IndexOutOfBoundsException
- if index < 0 || index > size().public int binarySearch(byte key)
key
- the value to be searched for.Arrays
public int binarySearchFromTo(byte key, int from, int to)
key
- the value to be searched for.from
- the leftmost search position, inclusive.to
- the rightmost search position, inclusive.Arrays
public Object clone()
clone
in class PersistentObject
public boolean contains(byte elem)
elem
- element whose presence in the receiver is to be tested.public void delete(byte element)
element
- the element to be deleted.public byte[] elements()
public AbstractByteList elements(byte[] elements)
elements
- the new elements to be stored.public abstract void ensureCapacity(int minCapacity)
minCapacity
- the desired minimum capacity.public boolean equals(Object otherObj)
public void fillFromToWith(int from, int to, byte val)
from
- the index of the first element (inclusive) to be filled with the specified value.to
- the index of the last element (inclusive) to be filled with the specified value.val
- the value to be stored in the specified elements of the receiver.public boolean forEach(ByteProcedure procedure)
procedure
- the procedure to be applied. Stops iteration if the procedure returns false, otherwise
continues.public byte get(int index)
index
- index of element to return.IndexOutOfBoundsException
- index is out of range (index < 0 || index >= size()).protected abstract byte getQuick(int index)
index
- index of element to return.public int indexOf(byte element)
-1
if the receiver does
not contain this element.element
- the element to be searched for.-1
if the element is
not found.public int indexOfFromTo(byte element, int from, int to)
-1
if the receiver does
not contain this element. Searches between from
, inclusive and to
, inclusive. Tests for
identity.element
- element to search for.from
- the leftmost search position, inclusive.to
- the rightmost search position, inclusive.-1
if the element is
not found.IndexOutOfBoundsException
- index is out of range (size()>0 && (from<0 || from>to ||
to>=size())).public int lastIndexOf(byte element)
-1
if the receiver does not
contain this element.element
- the element to be searched for.-1
if the element is
not found.public int lastIndexOfFromTo(byte element, int from, int to)
-1
if the receiver does not
contain this element. Searches beginning at to
, inclusive until from
, inclusive. Tests
for identity.element
- element to search for.from
- the leftmost search position, inclusive.to
- the rightmost search position, inclusive.-1
if the element is
not found.IndexOutOfBoundsException
- index is out of range (size()>0 && (from<0 || from>to ||
to>=size())).public void mergeSortFromTo(int from, int to)
You should never call this method unless you are sure that this particular sorting algorithm is the right one for your data set. It is generally better to call sort() or sortFromTo(...) instead, because those methods automatically choose the best sorting algorithm.
mergeSortFromTo
in class AbstractList
from
- the index of the first element (inclusive) to be sorted.to
- the index of the last element (inclusive) to be sorted.IndexOutOfBoundsException
- index is out of range (size()>0 && (from<0 || from>to ||
to>=size())).public void mergeSortFromTo(int from, int to, ByteComparator c)
This sort is guaranteed to be stable: equal elements will not be reordered as a result of the sort.
The sorting algorithm is a modified mergesort (in which the merge is omitted if the highest element in the low sublist is less than the lowest element in the high sublist). This algorithm offers guaranteed n*log(n) performance, and can approach linear performance on nearly sorted lists.
from
- the index of the first element (inclusive) to be sorted.to
- the index of the last element (inclusive) to be sorted.c
- the comparator to determine the order of the receiver.ClassCastException
- if the array contains elements that are not mutually comparable using
the specified comparator.IllegalArgumentException
- if fromIndex > toIndexArrayIndexOutOfBoundsException
- if fromIndex < 0 or toIndex > a.lengthIndexOutOfBoundsException
- index is out of range (size()>0 && (from<0 || from>to ||
to>=size())).public AbstractByteList partFromTo(int from, int to)
from
, inclusive, and to
,
inclusive.from
- the index of the first element (inclusive).to
- the index of the last element (inclusive).IndexOutOfBoundsException
- index is out of range (size()>0 && (from<0 || from>to ||
to>=size())).public void quickSortFromTo(int from, int to)
You should never call this method unless you are sure that this particular sorting algorithm is the right one for your data set. It is generally better to call sort() or sortFromTo(...) instead, because those methods automatically choose the best sorting algorithm.
quickSortFromTo
in class AbstractList
from
- the index of the first element (inclusive) to be sorted.to
- the index of the last element (inclusive) to be sorted.IndexOutOfBoundsException
- index is out of range (size()>0 && (from<0 || from>to ||
to>=size())).public void quickSortFromTo(int from, int to, ByteComparator c)
The sorting algorithm is a tuned quicksort, adapted from Jon L. Bentley and M. Douglas McIlroy's "Engineering a Sort Function", Software-Practice and Experience, Vol. 23(11) P. 1249-1265 (November 1993). This algorithm offers n*log(n) performance on many data sets that cause other quicksorts to degrade to quadratic performance.
from
- the index of the first element (inclusive) to be sorted.to
- the index of the last element (inclusive) to be sorted.c
- the comparator to determine the order of the receiver.ClassCastException
- if the array contains elements that are not mutually comparable using
the specified comparator.IllegalArgumentException
- if fromIndex > toIndexArrayIndexOutOfBoundsException
- if fromIndex < 0 or toIndex > a.lengthIndexOutOfBoundsException
- index is out of range (size()>0 && (from<0 || from>to ||
to>=size())).public boolean removeAll(AbstractByteList other)
other
- the other list.true
if the receiver changed as a result of the call.public void removeFromTo(int from, int to)
from
, inclusive and to
,
inclusive. Shifts any succeeding elements to the left (reduces their index). This call shortens the list by
(to - from + 1) elements.removeFromTo
in class AbstractList
from
- index of first element to be removed.to
- index of last element to be removed.IndexOutOfBoundsException
- index is out of range (size()>0 && (from<0 || from>to ||
to>=size())).public void replaceFromToWithFrom(int from, int to, AbstractByteList other, int otherFrom)
from
(inclusive) and to
(inclusive), with elements of
other
, starting from otherFrom
(inclusive).from
- the position of the first element to be replaced in the receiverto
- the position of the last element to be replaced in the receiverother
- list holding elements to be copied into the receiver.otherFrom
- position of first element within other list to be copied.public void replaceFromToWithFromTo(int from, int to, AbstractByteList other, int otherFrom, int otherTo)
from
(inclusive) and to
(inclusive) with the other list's part
between otherFrom
and otherTo
. Powerful (and tricky) method! Both parts need not be of
the same size (part A can both be smaller or larger than part B). Parts may overlap. Receiver and other list may
(but most not) be identical. If from > to
, then inserts other part before from
.from
- the first element of the receiver (inclusive)to
- the last element of the receiver (inclusive)other
- the other list (may be identical with receiver)otherFrom
- the first element of the other list (inclusive)otherTo
- the last element of the other list (inclusive)
Examples:
a=[0, 1, 2, 3, 4, 5, 6, 7] b=[50, 60, 70, 80, 90] a.R(...)=a.replaceFromToWithFromTo(...) a.R(3,5,b,0,4)-->[0, 1, 2, 50, 60, 70, 80, 90, 6, 7] a.R(1,6,b,0,4)-->[0, 50, 60, 70, 80, 90, 7] a.R(0,6,b,0,4)-->[50, 60, 70, 80, 90, 7] a.R(3,5,b,1,2)-->[0, 1, 2, 60, 70, 6, 7] a.R(1,6,b,1,2)-->[0, 60, 70, 7] a.R(0,6,b,1,2)-->[60, 70, 7] a.R(5,3,b,0,4)-->[0, 1, 2, 3, 4, 50, 60, 70, 80, 90, 5, 6, 7] a.R(5,0,b,0,4)-->[0, 1, 2, 3, 4, 50, 60, 70, 80, 90, 5, 6, 7] a.R(5,3,b,1,2)-->[0, 1, 2, 3, 4, 60, 70, 5, 6, 7] a.R(5,0,b,1,2)-->[0, 1, 2, 3, 4, 60, 70, 5, 6, 7] Extreme cases: a.R(5,3,b,0,0)-->[0, 1, 2, 3, 4, 50, 5, 6, 7] a.R(5,3,b,4,4)-->[0, 1, 2, 3, 4, 90, 5, 6, 7] a.R(3,5,a,0,1)-->[0, 1, 2, 0, 1, 6, 7] a.R(3,5,a,3,5)-->[0, 1, 2, 3, 4, 5, 6, 7] a.R(3,5,a,4,4)-->[0, 1, 2, 4, 6, 7] a.R(5,3,a,0,4)-->[0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 5, 6, 7] a.R(0,-1,b,0,4)-->[50, 60, 70, 80, 90, 0, 1, 2, 3, 4, 5, 6, 7] a.R(0,-1,a,0,4)-->[0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 5, 6, 7] a.R(8,0,a,0,4)-->[0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4]
public boolean retainAll(AbstractByteList other)
other
- the other list to test against.true
if the receiver changed as a result of the call.public void reverse()
reverse
in class AbstractList
public void set(int index, byte element)
index
- index of element to replace.element
- element to be stored at the specified position.IndexOutOfBoundsException
- if index < 0 || index >= size().protected abstract void setQuick(int index, byte element)
index
- index of element to replace.element
- element to be stored at the specified position.protected void setSizeRaw(int newSize)
public int size()
size
in class AbstractList
public AbstractByteList times(int times)
times
times the receiver.times
- the number of times the receiver shall be copied.public byte[] toArray(byte[] values)
Copyright © 2008–2015 The Apache Software Foundation. All rights reserved.