java.lang.Object
de.grogra.xl.util.IntList
- All Implemented Interfaces:
IntConsumer,VoidToIntGenerator,Serializable,Cloneable
public class IntList
extends Object
implements Cloneable, Serializable, IntConsumer, VoidToIntGenerator
A
IntList represents a list of int values.
It provides list- and stack-oriented methods for insertion, addition,
and removal, of values. The methods are not thread-safe.- Author:
- Ole Kniemeyer
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanadd(int o) Addsoas last element to this list.voidadd(int index, int o) Insertsoat positionindexto this list.addAll(int[] v, int begin, int length) Appendslengthcomponents ofvto this list, starting at indexbegin.Appends all elements ofvto this list.voidaddIfNotContained(int o) Addsoas last element to this list if is not yet contained as reported bycontains(int).static voidarraycopy(int[] src, int srcIndex, int[] dest, int destIndex, int length) intbinarySearch(int value) Searches this list for the specified value using the binary search algorithm.static intbinarySearch(int[] array, int value) static intbinarySearch(int[] array, int value, int fromIndex, int toIndex) voidclear()Removes all of the elements from this list.static voidclear(int[] array, int index, int length) clone()voidconsume(int value) Receives a value of typeint.booleancontains(int o) Returnstrueiff this list contains the given elemento.voidensureCapacity(int capacity) Ensures a capacity of the internal array of at leastcapacity.booleanvoidevaluateInt(IntConsumer cons) This generator method yields all values tocons.intget(int index) Returns the list element atindex.inthashCode()intindexOf(int o) Returns the index ofoin this list.final booleanisEmpty()Returns if this list is empty, i.e., if its size is zero.intlastIndexOf(int o) Returns the last index ofoin this list.intpeek(int index) Returns the list element atindexas seen from the top, i.e., at absolute positionsize - index.intpop()Removes and returns the object at the top of this list.final IntListpush(int o) Pushesoon top of this list, i.e., as last element.final IntListpush(int o1, int o2) Pusheso1ando2on top of this list, i.e., as last elements.final IntListpush(int o1, int o2, int o3) Pusheso1 ... o3on top of this list, i.e., as last elements.booleanremove(int o) Removes the elemento.intremoveAt(int index) Removes the element at positionindex.intset(int index, int o) Sets the element at positionindextoo.voidsetSize(int size) Sets the size of this list to the given value.final intsize()Returns the size of this list.int[]toArray()Returns an array containing the elements of this list.int[]toArray(int[] array) Returns an array containing the elements of this list.toString()voidTrims the capacity of this list to be its current size.voidvalues(IntConsumer cons) This method is an alias forevaluateInt(de.grogra.xl.lang.IntConsumer).void
-
Field Details
-
elements
public transient int[] elementsThe array holding the elements. Only the components from 0 tosize - 1are valid. Direct operation on this array has to be designed carefully to avoid inconsistencies. -
size
public int sizeThe size of this list. Direct operation on this field has to be designed carefully to avoid inconsistencies.
-
-
Constructor Details
-
IntList
public IntList(int capacity) Constructs a newIntListwith a given initial capacity.- Parameters:
capacity- the initial capacity
-
IntList
public IntList()Constructs a newIntList. -
IntList
public IntList(int[] elements) Constructs a newIntListwhose elements are a copy ofelements.- Parameters:
elements- the initial elements of the list
-
-
Method Details
-
clone
-
ensureCapacity
public void ensureCapacity(int capacity) Ensures a capacity of the internal array of at leastcapacity.- Parameters:
capacity- the desired minimum capacity
-
trimToSize
public void trimToSize()Trims the capacity of this list to be its current size. -
push
Pushesoon top of this list, i.e., as last element.- Parameters:
o- the value to push- Returns:
- this list
-
push
Pusheso1ando2on top of this list, i.e., as last elements. The effect is the same as the invocationlist.push(o1).push(o2).- Parameters:
o1- the first value to pusho2- the second value to push- Returns:
- this list
-
push
Pusheso1 ... o3on top of this list, i.e., as last elements. The effect is the same as the invocationlist.push(o1).push(o2).push(o3).- Parameters:
o1- the first value to pusho2- the second value to pusho3- the third value to push- Returns:
- this list
-
add
public boolean add(int o) Addsoas last element to this list.- Parameters:
o- the value to add- Returns:
true
-
add
public void add(int index, int o) Insertsoat positionindexto this list. Ifindexis not less thansize, the list is enlarged and filled with0-values before.- Parameters:
index- the insert positiono- the value to insert
-
addIfNotContained
public void addIfNotContained(int o) Addsoas last element to this list if is not yet contained as reported bycontains(int).- Parameters:
o- the value to add
-
addAll
Appends all elements ofvto this list.- Parameters:
v- the list of elements to add- Returns:
- this list
-
addAll
Appendslengthcomponents ofvto this list, starting at indexbegin.- Parameters:
v- the array of elements to addbegin- the array index to begin withlength- the number of elements to add- Returns:
- this list
-
removeAt
public int removeAt(int index) Removes the element at positionindex.- Parameters:
index- the position of the element to be removed- Returns:
- the value of the removed element
-
remove
public boolean remove(int o) Removes the elemento. The last occurence ofoin this list is removed.- Parameters:
o- the element to be removed- Returns:
trueiffowas found and removed from the list
-
set
public int set(int index, int o) Sets the element at positionindextoo. Ifindexis not less thansize, the list is enlarged and filled with0-values before.- Parameters:
index- the positiono- the new value- Returns:
- the old value at
index
-
get
public int get(int index) Returns the list element atindex. Ifindexis not less thansize,0is returned.- Parameters:
index- the position- Returns:
- the value at
index
-
peek
public int peek(int index) Returns the list element atindexas seen from the top, i.e., at absolute positionsize - index. Thus, the topmost element has index 1.- Parameters:
index- the position as seen from the top- Returns:
- the value at that position
-
contains
public boolean contains(int o) Returnstrueiff this list contains the given elemento.- Parameters:
o- a value- Returns:
trueiffois contained
-
indexOf
public int indexOf(int o) Returns the index ofoin this list.- Parameters:
o- a value- Returns:
- the index of
o, or -1 ofois not contained
-
lastIndexOf
public int lastIndexOf(int o) Returns the last index ofoin this list.- Parameters:
o- a value- Returns:
- the index of
o, or -1 ofois not contained
-
binarySearch
public int binarySearch(int value) Searches this list for the specified value using the binary search algorithm. This list has to be sorted in ascending order.- Parameters:
value- the value to be searched for- Returns:
- index of the searched value, if it is contained in this list;
otherwise,
(-(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, orsize(), if all elements in the list are less than the specified value.
-
binarySearch
public static int binarySearch(int[] array, int value) -
binarySearch
public static int binarySearch(int[] array, int value, int fromIndex, int toIndex) -
writeTo
-
clear
public void clear()Removes all of the elements from this list. The list will be empty after this call returns. -
arraycopy
public static void arraycopy(int[] src, int srcIndex, int[] dest, int destIndex, int length) -
clear
public static void clear(int[] array, int index, int length) -
pop
public int pop()Removes and returns the object at the top of this list.- Returns:
- the removed object from the top of this list
-
setSize
public void setSize(int size) Sets the size of this list to the given value. If the new size is greater than the old size, the new elements are initialized with0-values.- Parameters:
size- the new size
-
size
public final int size()Returns the size of this list.- Returns:
- the size
-
isEmpty
public final boolean isEmpty()Returns if this list is empty, i.e., if its size is zero.- Returns:
trueiff this list is empty
-
toArray
public int[] toArray()Returns an array containing the elements of this list.- Returns:
- an array copy of this list
-
toArray
public int[] toArray(int[] array) Returns an array containing the elements of this list. The type of the returned array is that of the specifiedarray. If this list fits in the specifiedarray, 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, a0-value is written behind the last copied element.- Parameters:
array- an array to use- Returns:
- an array copy of this list
-
toString
-
equals
-
hashCode
public int hashCode() -
consume
public void consume(int value) Description copied from interface:IntConsumerReceives a value of typeint.- Specified by:
consumein interfaceIntConsumer
-
evaluateInt
This generator method yields all values tocons.- Specified by:
evaluateIntin interfaceVoidToIntGenerator- Parameters:
cons- the consumer which receives the values
-
values
This method is an alias forevaluateInt(de.grogra.xl.lang.IntConsumer).
-