Package civitas.celestis.util.array
Class IntFastArray
java.lang.Object
civitas.celestis.util.array.IntFastArray
A basic int array with no built-in synchronization or thread-safety measures.
- See Also:
-
Field Summary
Fields -
Constructor Summary
ConstructorsModifierConstructorDescriptionIntFastArray(int length) Creates a new fast int array.protectedIntFastArray(int[] array) Creates a new fast int array.Creates a new fast int array. -
Method Summary
Modifier and TypeMethodDescriptionint[]array()Returns a primitive array containing the elements of this array in their proper order.boxed()Returns an array containing the elements of this array in their boxed form.booleancontains(int v) Returns whether this array contains the provided valuev.booleanReturns whether this array contains multiple objects.booleanChecks for equality between this array and the provided objectobj.voidfill(int v) Fills this array with the provided valuev.voidfillRange(int s, int e, int v) Fills every slot of this array between the range of[s, e)with the provided valuev.voidforEach(BiConsumer<? super Integer, ? super Integer> a) Executes the provided actionaonce for each element of this array.voidExecutes the provided actionaonce for each element of this array.intget(int i) Returns theith element of this array.inthashCode()Returns the hash code of this instance.iterator()Returns an iterator over every element of this array.intlength()Returns the length of this array.list()Returns an unmodifiable list containing the elements of this array in their proper order.Applies the provided mapper functionfto each element of this array, then returns a new array containing the return values of the functionf.<F> SafeArray<F>mapToObj(IntFunction<? extends F> f) Applies the provided mapper functionfto each element of this array, then returns a new array containing the return values of the functionf.merge(IntArray a, IntBinaryOperator f) Between this array and the provided arraya, this applies the merger functionfto each corresponding pair of elements, then returns a new array containing the return values of the merger functionf.voidreplaceAll(int oldValue, int newValue) Replaces all instances of the old value to the new value.voidreplaceFirst(int oldValue, int newValue) Replaces only the first instance of the old value to the new value.voidreplaceLast(int oldValue, int newValue) Replaces only the last instance of the old value to the new value.resize(int size) Returns a resized array whose elements are mapped from that of this array's elements.voidset(int i, int e) Sets theith element of this array.voidSets a sub-array of this array to the values of the provided sub-arraya.voidshuffle()Shuffles this array, randomizing its elements' order.voidsort()Sorts this array by its natural ascending order.voidsort(Comparator<? super Integer> c) Sorts this array using the provided comparator functionc.stream()Returns a stream whose source is the elements of this array.subArray(int s, int e) Returns a sub-array of this array which represents a portion of this array between the range of[s, e).toString()Serializes this array into a string.tuple()Returns a tuple containing the elements of this array in their proper order.voidupdate(int i, IntUnaryOperator f) Updates theith element of this array with the provided update functionf.voidupdate(BiFunction<? super Integer, ? super Integer, Integer> f) Applies the provided update functionfto each element of this array, then assigns the return value of the function to the corresponding index of this array.voidApplies the provided update functionfto each element of this array, then assigns the return value of the function to the corresponding index of this array.Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.Iterable
spliterator
-
Field Details
-
values
@Nonnull protected final int[] valuesThe internal array of values.
-
-
Constructor Details
-
IntFastArray
public IntFastArray(int length) Creates a new fast int array.- Parameters:
length- The length to initialize this array to
-
IntFastArray
Creates a new fast int array.- Parameters:
a- The array of which to copy elements from
-
IntFastArray
protected IntFastArray(@Nonnull int[] array) Creates a new fast int array. This is a direct assignment constructor, and thus is hidden to ensure safe usage.- Parameters:
array- The array of which to directly assign as the internal array
-
-
Method Details
-
length
public int length()Returns the length of this array. -
contains
public boolean contains(int v) Returns whether this array contains the provided valuev. -
containsAll
Returns whether this array contains multiple objects.- Specified by:
containsAllin interfaceIntArray- Parameters:
i- The iterable object of which to check for containment- Returns:
trueif this array contains every element of the iterable object
-
get
Returns theith element of this array.- Specified by:
getin interfaceIntArray- Parameters:
i- The index of the element to get- Returns:
- The
ith element of this array - Throws:
IndexOutOfBoundsException- When the indexiis out of bounds
-
set
Sets theith element of this array.- Specified by:
setin interfaceIntArray- Parameters:
i- The index of the element to sete- The element of which to set to- Throws:
IndexOutOfBoundsException- When the indexiis out of bounds
-
update
Updates theith element of this array with the provided update functionf.- Specified by:
updatein interfaceIntArray- Parameters:
i- The index of the element to updatef- The update function of which to apply to the element- Throws:
IndexOutOfBoundsException- When the indexiis out of bounds
-
fill
public void fill(int v) Fills this array with the provided valuev. Every element will be reassigned. -
fillRange
public void fillRange(int s, int e, int v) Fills every slot of this array between the range of[s, e)with the provided valuev. -
update
Applies the provided update functionfto each element of this array, then assigns the return value of the function to the corresponding index of this array. -
update
Applies the provided update functionfto each element of this array, then assigns the return value of the function to the corresponding index of this array. The first parameter is the index of the value which was provided. -
replaceAll
public void replaceAll(int oldValue, int newValue) Replaces all instances of the old value to the new value.- Specified by:
replaceAllin interfaceIntArray- Parameters:
oldValue- The old value to replacenewValue- The new value to replace to
-
replaceFirst
public void replaceFirst(int oldValue, int newValue) Replaces only the first instance of the old value to the new value. (starting from index0, and incrementing upwards)- Specified by:
replaceFirstin interfaceIntArray- Parameters:
oldValue- The old value to replacenewValue- The new value to replace to
-
replaceLast
public void replaceLast(int oldValue, int newValue) Replaces only the last instance of the old value to the new value. (starting from the last index, and decrementing downwards)- Specified by:
replaceLastin interfaceIntArray- Parameters:
oldValue- The old value to replacenewValue- The new value to replace to
-
subArray
Returns a sub-array of this array which represents a portion of this array between the range of[s, e). Changes in the sub-array will be reflected to this array. For example, callinga.subArray(1, 3).fill(null);will have the same effect as setting the values of indices1, 2of the original array tonull.- Specified by:
subArrayin interfaceIntArray- Parameters:
s- The starting index at which to start creating the sub-array (inclusive)e- The ending index at which to stop creating the sub-array (exclusive)- Returns:
- The sub-array representing the index range of
[s, e) - Throws:
IndexOutOfBoundsException- When the range is invalid, or is out of bounds
-
setRange
Sets a sub-array of this array to the values of the provided sub-arraya.- Specified by:
setRangein interfaceIntArray- Parameters:
s- The starting index at which to start copying values from (inclusive)e- The ending index at which to stop copying values from (exclusive)a- The sub-array containing the values to assign to this array- Throws:
IndexOutOfBoundsException- When the range is invalid, or is out of bounds
-
resize
Returns a resized array whose elements are mapped from that of this array's elements. If the new array is larger than this array, the unmappable part will not be populated, leaving it uninitialized asnull. -
shuffle
public void shuffle()Shuffles this array, randomizing its elements' order. -
sort
public void sort()Sorts this array by its natural ascending order. -
sort
Sorts this array using the provided comparator functionc. -
map
Applies the provided mapper functionfto each element of this array, then returns a new array containing the return values of the functionf. -
mapToObj
Applies the provided mapper functionfto each element of this array, then returns a new array containing the return values of the functionf. -
merge
@Nonnull public IntArray merge(@Nonnull IntArray a, @Nonnull IntBinaryOperator f) throws IllegalArgumentException Between this array and the provided arraya, this applies the merger functionfto each corresponding pair of elements, then returns a new array containing the return values of the merger functionf. In other words, this merges the two arrays into a new array using the provided merger functionf.- Specified by:
mergein interfaceIntArray- Parameters:
a- The array of which to merge this array withf- The merger function to handle the merging of the two arrays- Returns:
- The resulting array
- Throws:
IllegalArgumentException- When the provided arraya's length is different from that of this array's length
-
iterator
Returns an iterator over every element of this array. -
forEach
Executes the provided actionaonce for each element of this array. A reference to the element is provided as the first parameter of the action. -
forEach
Executes the provided actionaonce for each element of this array. The index of the element is provided as the first parameter of the action, and a reference to the element is provided as the second parameter of the action. -
array
@Nonnull public int[] array()Returns a primitive array containing the elements of this array in their proper order. -
stream
Returns a stream whose source is the elements of this array. -
list
Returns an unmodifiable list containing the elements of this array in their proper order. -
tuple
Returns a tuple containing the elements of this array in their proper order. UnlikeIntArray.list(), this operation cannot fail as tuples inherently support the usage ofnullas their values. -
boxed
Returns an array containing the elements of this array in their boxed form. -
equals
Checks for equality between this array and the provided objectobj. -
toString
Serializes this array into a string. -
hashCode
public int hashCode()Returns the hash code of this instance.
-