Class FloatFastArray

java.lang.Object
civitas.celestis.util.array.FloatFastArray
All Implemented Interfaces:
BaseArray<Float>, FloatArray, Serializable, Iterable<Float>

public class FloatFastArray extends Object implements FloatArray
A basic float array with no built-in synchronization or thread-safety measures.
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final float[]
    The internal array of values.
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    FloatFastArray(float[] array)
    Creates a new fast float array.
     
    FloatFastArray(int length)
    Creates a new fast float array.
     
    Creates a new fast float array.
     
    Creates a new fast float array.
  • Method Summary

    Modifier and Type
    Method
    Description
    float[]
    Returns a primitive array containing the elements of this array in their proper order.
    Returns an array containing the elements of this array in their boxed form.
    boolean
    contains(float v)
    Returns whether this array contains the provided value v.
    boolean
    Returns whether this array contains multiple objects.
    boolean
    Checks for equality between this array and the provided object obj.
    void
    fill(float v)
    Fills this array with the provided value v.
    void
    fillRange(int s, int e, float v)
    Fills every slot of this array between the range of [s, e) with the provided value v.
    void
    forEach(BiConsumer<? super Integer,? super Float> a)
    Executes the provided action a once for each element of this array.
    void
    forEach(Consumer<? super Float> a)
    Executes the provided action a once for each element of this array.
    float
    get(int i)
    Returns the ith element of this array.
    int
    Returns the hash code of this instance.
    Returns an iterator over every element of this array.
    int
    Returns the length of this array.
    Returns an unmodifiable list containing the elements of this array in their proper order.
    Applies the provided mapper function f to each element of this array, then returns a new array containing the return values of the function f.
    <F> SafeArray<F>
    mapToObj(FloatFunction<? extends F> f)
    Applies the provided mapper function f to each element of this array, then returns a new array containing the return values of the function f.
    Between this array and the provided array a, this applies the merger function f to each corresponding pair of elements, then returns a new array containing the return values of the merger function f.
    void
    replaceAll(float oldValue, float newValue)
    Replaces all instances of the old value to the new value.
    void
    replaceFirst(float oldValue, float newValue)
    Replaces only the first instance of the old value to the new value.
    void
    replaceLast(float oldValue, float 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.
    void
    set(int i, float e)
    Sets the ith element of this array.
    void
    setRange(int s, int e, FloatArray a)
    Sets a sub-array of this array to the values of the provided sub-array a.
    void
    Shuffles this array, randomizing its elements' order.
    void
    Sorts this array by its natural ascending order.
    void
    sort(Comparator<? super Float> c)
    Sorts this array using the provided comparator function c.
    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).
    Serializes this array into a string.
    Returns a tuple containing the elements of this array in their proper order.
    void
    Updates the ith element of this array with the provided update function f.
    void
    Applies the provided update function f to each element of this array, then assigns the return value of the function to the corresponding index of this array.
    void
    update(BiFunction<? super Integer,? super Float,Float> f)
    Applies the provided update function f to 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, wait

    Methods inherited from interface civitas.celestis.util.array.FloatArray

    append, filter, prepend

    Methods inherited from interface java.lang.Iterable

    spliterator
  • Field Details

    • values

      @Nonnull protected final float[] values
      The internal array of values.
  • Constructor Details

    • FloatFastArray

      public FloatFastArray(int length)
      Creates a new fast float array.
      Parameters:
      length - The length to initialize this array to
    • FloatFastArray

      public FloatFastArray(@Nonnull FloatArray a)
      Creates a new fast float array.
      Parameters:
      a - The array of which to copy elements from
    • FloatFastArray

      public FloatFastArray(@Nonnull Float[] values)
      Creates a new fast float array.
      Parameters:
      values - The value this array should contain
    • FloatFastArray

      protected FloatFastArray(@Nonnull float[] array)
      Creates a new fast float 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.
      Specified by:
      length in interface BaseArray<Float>
      Specified by:
      length in interface FloatArray
      Returns:
      The number of elements this array contains
    • contains

      public boolean contains(float v)
      Returns whether this array contains the provided value v.
      Specified by:
      contains in interface FloatArray
      Parameters:
      v - The value to check for containment
      Returns:
      true if at least one element of this array is equal to the provided value v
    • containsAll

      public boolean containsAll(@Nonnull Iterable<Float> i)
      Returns whether this array contains multiple objects.
      Specified by:
      containsAll in interface FloatArray
      Parameters:
      i - The iterable object of which to check for containment
      Returns:
      true if this array contains every element of the iterable object
    • get

      public float get(int i) throws IndexOutOfBoundsException
      Returns the ith element of this array.
      Specified by:
      get in interface FloatArray
      Parameters:
      i - The index of the element to get
      Returns:
      The ith element of this array
      Throws:
      IndexOutOfBoundsException - When the index i is out of bounds
    • set

      public void set(int i, float e) throws IndexOutOfBoundsException
      Sets the ith element of this array.
      Specified by:
      set in interface FloatArray
      Parameters:
      i - The index of the element to set
      e - The element of which to set to
      Throws:
      IndexOutOfBoundsException - When the index i is out of bounds
    • update

      public void update(int i, @Nonnull FloatUnaryOperator f) throws IndexOutOfBoundsException
      Updates the ith element of this array with the provided update function f.
      Specified by:
      update in interface FloatArray
      Parameters:
      i - The index of the element to update
      f - The update function of which to apply to the element
      Throws:
      IndexOutOfBoundsException - When the index i is out of bounds
    • fill

      public void fill(float v)
      Fills this array with the provided value v. Every element will be reassigned.
      Specified by:
      fill in interface FloatArray
      Parameters:
      v - The value to fill this array with
    • fillRange

      public void fillRange(int s, int e, float v)
      Fills every slot of this array between the range of [s, e) with the provided value v.
      Specified by:
      fillRange in interface FloatArray
      Parameters:
      s - The starting index at which to start assigning values from
      e - The ending index at which to stop assigning values at
      v - The value of which to assign to every slot within the specified range
    • update

      public void update(@Nonnull FloatUnaryOperator f)
      Applies the provided update function f to each element of this array, then assigns the return value of the function to the corresponding index of this array.
      Specified by:
      update in interface FloatArray
      Parameters:
      f - The function of which to apply to each element of this array
    • update

      public void update(@Nonnull BiFunction<? super Integer,? super Float,Float> f)
      Applies the provided update function f to 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.
      Specified by:
      update in interface FloatArray
      Parameters:
      f - The function of which to apply to each element of this array
    • replaceAll

      public void replaceAll(float oldValue, float newValue)
      Replaces all instances of the old value to the new value.
      Specified by:
      replaceAll in interface FloatArray
      Parameters:
      oldValue - The old value to replace
      newValue - The new value to replace to
    • replaceFirst

      public void replaceFirst(float oldValue, float newValue)
      Replaces only the first instance of the old value to the new value. (starting from index 0, and incrementing upwards)
      Specified by:
      replaceFirst in interface FloatArray
      Parameters:
      oldValue - The old value to replace
      newValue - The new value to replace to
    • replaceLast

      public void replaceLast(float oldValue, float newValue)
      Replaces only the last instance of the old value to the new value. (starting from the last index, and decrementing downwards)
      Specified by:
      replaceLast in interface FloatArray
      Parameters:
      oldValue - The old value to replace
      newValue - The new value to replace to
    • subArray

      @Nonnull public FloatArray subArray(int s, int e) throws IndexOutOfBoundsException
      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, calling a.subArray(1, 3).fill(null); will have the same effect as setting the values of indices 1, 2 of the original array to null.
      Specified by:
      subArray in interface FloatArray
      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

      public void setRange(int s, int e, @Nonnull FloatArray a) throws IndexOutOfBoundsException
      Sets a sub-array of this array to the values of the provided sub-array a.
      Specified by:
      setRange in interface FloatArray
      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

      @Nonnull public FloatArray resize(int size)
      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 as null.
      Specified by:
      resize in interface FloatArray
      Parameters:
      size - The size to resize this array to
      Returns:
      The resized array
    • shuffle

      public void shuffle()
      Shuffles this array, randomizing its elements' order.
      Specified by:
      shuffle in interface BaseArray<Float>
      Specified by:
      shuffle in interface FloatArray
    • sort

      public void sort()
      Sorts this array by its natural ascending order.
      Specified by:
      sort in interface BaseArray<Float>
      Specified by:
      sort in interface FloatArray
    • sort

      public void sort(@Nonnull Comparator<? super Float> c)
      Sorts this array using the provided comparator function c.
      Specified by:
      sort in interface BaseArray<Float>
      Specified by:
      sort in interface FloatArray
      Parameters:
      c - The comparator function of which to sort this array with
    • map

      @Nonnull public FloatArray map(@Nonnull FloatUnaryOperator f)
      Applies the provided mapper function f to each element of this array, then returns a new array containing the return values of the function f.
      Specified by:
      map in interface FloatArray
      Parameters:
      f - The function of which to apply to each element of this array
      Returns:
      The resulting array
    • mapToObj

      @Nonnull public <F> SafeArray<F> mapToObj(@Nonnull FloatFunction<? extends F> f)
      Applies the provided mapper function f to each element of this array, then returns a new array containing the return values of the function f.
      Specified by:
      mapToObj in interface FloatArray
      Type Parameters:
      F - The type of element to map this array to
      Parameters:
      f - The function of which to apply to each element of this array
      Returns:
      The resulting array
    • merge

      @Nonnull public FloatArray merge(@Nonnull FloatArray a, @Nonnull FloatBinaryOperator f) throws IllegalArgumentException
      Between this array and the provided array a, this applies the merger function f to each corresponding pair of elements, then returns a new array containing the return values of the merger function f. In other words, this merges the two arrays into a new array using the provided merger function f.
      Specified by:
      merge in interface FloatArray
      Parameters:
      a - The array of which to merge this array with
      f - The merger function to handle the merging of the two arrays
      Returns:
      The resulting array
      Throws:
      IllegalArgumentException - When the provided array a's length is different from that of this array's length
    • iterator

      @Nonnull public Iterator<Float> iterator()
      Returns an iterator over every element of this array.
      Specified by:
      iterator in interface BaseArray<Float>
      Specified by:
      iterator in interface FloatArray
      Specified by:
      iterator in interface Iterable<Float>
      Returns:
      An iterator over every element of this array
    • forEach

      public void forEach(@Nonnull Consumer<? super Float> a)
      Executes the provided action a once for each element of this array. A reference to the element is provided as the first parameter of the action.
      Specified by:
      forEach in interface BaseArray<Float>
      Specified by:
      forEach in interface FloatArray
      Specified by:
      forEach in interface Iterable<Float>
      Parameters:
      a - The action to be performed for each element
    • forEach

      public void forEach(@Nonnull BiConsumer<? super Integer,? super Float> a)
      Executes the provided action a once 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.
      Specified by:
      forEach in interface BaseArray<Float>
      Specified by:
      forEach in interface FloatArray
      Parameters:
      a - The action to be performed for each element
    • array

      @Nonnull public float[] array()
      Returns a primitive array containing the elements of this array in their proper order.
      Specified by:
      array in interface FloatArray
      Returns:
      The primitive array representation of this array
    • stream

      @Nonnull public Stream<Float> stream()
      Returns a stream whose source is the elements of this array.
      Specified by:
      stream in interface FloatArray
      Returns:
      A stream whose source is the elements of this array
      See Also:
    • list

      @Nonnull public List<Float> list()
      Returns an unmodifiable list containing the elements of this array in their proper order.
      Specified by:
      list in interface BaseArray<Float>
      Specified by:
      list in interface FloatArray
      Returns:
      The list representation of this array
      See Also:
    • tuple

      @Nonnull public FloatTuple tuple()
      Returns a tuple containing the elements of this array in their proper order. Unlike FloatArray.list(), this operation cannot fail as tuples inherently support the usage of null as their values.
      Specified by:
      tuple in interface FloatArray
      Returns:
      The tuple representation of this array
      See Also:
    • boxed

      @Nonnull public SafeArray<Float> boxed()
      Returns an array containing the elements of this array in their boxed form.
      Specified by:
      boxed in interface FloatArray
      Returns:
      The boxed object representation of this array
      See Also:
    • equals

      public boolean equals(@Nullable Object obj)
      Checks for equality between this array and the provided object obj.
      Specified by:
      equals in interface FloatArray
      Overrides:
      equals in class Object
      Parameters:
      obj - The object to compare to
      Returns:
      true if the object is also a float array, and the number of elements, the order of the elements, and the elements' values are all equal
    • toString

      @Nonnull public String toString()
      Serializes this array into a string.
      Specified by:
      toString in interface FloatArray
      Overrides:
      toString in class Object
      Returns:
      The string representation of this array
    • hashCode

      public int hashCode()
      Returns the hash code of this instance.
      Overrides:
      hashCode in class Object
      Returns:
      The hash code of this instance