de.grogra.xl.util
public class LongList extends java.lang.Object implements java.lang.Cloneable, java.io.Serializable, LongConsumer, VoidToLongGenerator
LongList represents a list of long values.
It provides list- and stack-oriented methods for insertion, addition,
and removal, of values. The methods are not thread-safe.| Modifier and Type | Field and Description |
|---|---|
long[] |
elements
The array holding the elements.
|
int |
size
The size of this list.
|
| Constructor and Description |
|---|
LongList()
Constructs a new
LongList. |
LongList(int capacity)
Constructs a new
LongList with a given initial capacity. |
LongList(long[] elements)
Constructs a new
LongList whose elements are
a copy of elements. |
| Modifier and Type | Method and Description |
|---|---|
void |
add(int index,
long o)
Inserts
o at position index to this list. |
boolean |
add(long o)
Adds
o as last element to this list. |
LongList |
addAll(long[] v,
int begin,
int length)
Appends
length components of v to this list,
starting at index begin. |
LongList |
addAll(LongList v)
Appends all elements of
v to this list. |
void |
addIfNotContained(long o)
Adds
o as last element to this list if is not
yet contained as reported by contains(long). |
static void |
arraycopy(long[] src,
int srcIndex,
long[] dest,
int destIndex,
int length) |
int |
binarySearch(long value)
Searches this list for the specified value using
the binary search algorithm.
|
static int |
binarySearch(long[] array,
long value) |
static int |
binarySearch(long[] array,
long value,
int fromIndex,
int toIndex) |
void |
clear()
Removes all of the elements from this list.
|
static void |
clear(long[] array,
int index,
int length) |
java.lang.Object |
clone() |
void |
consume(long value)
Receives a value of type
long. |
boolean |
contains(long o)
Returns
true iff this list contains the given
element o. |
void |
ensureCapacity(int capacity)
Ensures a capacity of the internal array of at least
capacity. |
boolean |
equals(java.lang.Object o) |
void |
evaluateLong(LongConsumer cons)
This generator method yields all values to
cons. |
long |
get(int index)
Returns the list element at
index. |
int |
hashCode() |
int |
indexOf(long o)
Returns the index of
o in this list. |
boolean |
isEmpty()
Returns if this list is empty, i.e., if its size is zero.
|
int |
lastIndexOf(long o)
Returns the last index of
o in this list. |
long |
peek(int index)
Returns the list element at
index as seen from
the top, i.e., at absolute position size - index. |
long |
pop()
Removes and returns the object at the top of this list.
|
LongList |
push(long o)
Pushes
o on top of this list, i.e., as last element. |
LongList |
push(long o1,
long o2)
Pushes
o1 and o2 on top of this list,
i.e., as last elements. |
LongList |
push(long o1,
long o2,
long o3)
Pushes
o1 ... o3 on top of this list,
i.e., as last elements. |
boolean |
remove(long o)
Removes the element
o. |
long |
removeAt(int index)
Removes the element at position
index. |
long |
set(int index,
long o)
Sets the element at position
index to o. |
void |
setSize(int size)
Sets the size of this list to the given value.
|
int |
size()
Returns the size of this list.
|
long[] |
toArray()
Returns an array containing the elements of this list.
|
long[] |
toArray(long[] array)
Returns an array containing the elements of this list.
|
java.lang.String |
toString() |
void |
trimToSize()
Trims the capacity of this list to be its current size.
|
void |
values(LongConsumer cons)
This method is an alias for
evaluateLong(de.grogra.xl.lang.LongConsumer). |
void |
writeTo(java.nio.LongBuffer out) |
public transient long[] elements
size - 1 are valid. Direct operation on this
array has to be designed carefully to avoid inconsistencies.public int size
public LongList()
LongList.public LongList(int capacity)
LongList with a given initial capacity.capacity - the initial capacitypublic LongList(long[] elements)
LongList whose elements are
a copy of elements.elements - the initial elements of the listpublic void add(int index,
long o)
o at position index to this list.
If index is not less than size, the
list is enlarged and filled with 0-values before.index - the insert positiono - the value to insertpublic boolean add(long o)
o as last element to this list.o - the value to addtruepublic LongList addAll(long[] v, int begin, int length)
length components of v to this list,
starting at index begin.v - the array of elements to addbegin - the array index to begin withlength - the number of elements to addpublic LongList addAll(LongList v)
v to this list.v - the list of elements to addpublic void addIfNotContained(long o)
o as last element to this list if is not
yet contained as reported by contains(long).o - the value to addpublic static void arraycopy(long[] src,
int srcIndex,
long[] dest,
int destIndex,
int length)
public int binarySearch(long value)
value - the value to be searched for(-(insertion point) - 1). The
insertion point is defined as the point at which the
value would be inserted into the list: the index of the first
element greater than the value, or size(), if all
elements in the list are less than the specified value.public static int binarySearch(long[] array,
long value)
public static int binarySearch(long[] array,
long value,
int fromIndex,
int toIndex)
public void clear()
public static void clear(long[] array,
int index,
int length)
public java.lang.Object clone()
clone in class java.lang.Objectpublic void consume(long value)
LongConsumerlong.consume in interface LongConsumerpublic boolean contains(long o)
true iff this list contains the given
element o.o - a valuetrue iff o is containedpublic void ensureCapacity(int capacity)
capacity.capacity - the desired minimum capacitypublic boolean equals(java.lang.Object o)
equals in class java.lang.Objectpublic void evaluateLong(LongConsumer cons)
cons.evaluateLong in interface VoidToLongGeneratorcons - the consumer which receives the valuespublic long get(int index)
index. If
index is not less than size,
0 is returned.index - the positionindexpublic int hashCode()
hashCode in class java.lang.Objectpublic int indexOf(long o)
o in this list.o - a valueo, or -1 of o is not containedpublic final boolean isEmpty()
true iff this list is emptypublic int lastIndexOf(long o)
o in this list.o - a valueo, or -1 of o is not containedpublic long peek(int index)
index as seen from
the top, i.e., at absolute position size - index.
Thus, the topmost element has index 1.index - the position as seen from the toppublic long pop()
public final LongList push(long o)
o on top of this list, i.e., as last element.o - the value to pushpublic final LongList push(long o1, long o2)
o1 and o2 on top of this list,
i.e., as last elements. The effect is the same as the invocation
list.push(o1).push(o2).o1 - the first value to pusho2 - the second value to pushpublic final LongList push(long o1, long o2, long o3)
o1 ... o3 on top of this list,
i.e., as last elements. The effect is the same as the invocation
list.push(o1).push(o2).push(o3).o1 - the first value to pusho2 - the second value to pusho3 - the third value to pushpublic boolean remove(long o)
o. The last occurence of
o in this list is removed.o - the element to be removedtrue iff o was found and removed from the listpublic long removeAt(int index)
index.index - the position of the element to be removedpublic long set(int index,
long o)
index to o.
If index is not less than size, the
list is enlarged and filled with 0-values before.index - the positiono - the new valueindexpublic void setSize(int size)
0-values.size - the new sizepublic final int size()
public long[] toArray()
public long[] toArray(long[] array)
array. If this
list fits in the specified array,
it is returned therein. Otherwise,
a new array is allocated whose length is the size of this list's size,
the values of this list are copied into the new array, and this
array is returned.
If there is room for an additional element in the array,
a 0-value is written behind the last copied element.
array - an array to usepublic java.lang.String toString()
toString in class java.lang.Objectpublic void trimToSize()
public void values(LongConsumer cons)
evaluateLong(de.grogra.xl.lang.LongConsumer).public void writeTo(java.nio.LongBuffer out)