Package smile.util

Class SparseIntArray

java.lang.Object
smile.util.SparseIntArray
All Implemented Interfaces:
Serializable, Iterable<SparseIntArray.Entry>

public class SparseIntArray extends Object implements Iterable<SparseIntArray.Entry>, Serializable
Sparse array of integers.
See Also:
  • Constructor Details

    • SparseIntArray

      public SparseIntArray()
      Constructor.
    • SparseIntArray

      public SparseIntArray(int initialCapacity)
      Constructor.
      Parameters:
      initialCapacity - the initial capacity.
    • SparseIntArray

      public SparseIntArray(Collection<SparseIntArray.Entry> entries)
      Constructor.
      Parameters:
      entries - the nonzero entries.
    • SparseIntArray

      public SparseIntArray(Stream<SparseIntArray.Entry> stream)
      Constructor.
      Parameters:
      stream - the stream of nonzero entries.
  • Method Details

    • toString

      public String toString()
      Overrides:
      toString in class Object
    • size

      public int size()
      Returns the number of nonzero entries.
      Returns:
      the number of nonzero entries
    • isEmpty

      public boolean isEmpty()
      Returns true if the array is empty.
      Returns:
      true if the array is empty.
    • forEach

      public void forEach(IntArrayElementConsumer action)
      Performs an action for each nonzero entry.
      Parameters:
      action - a non-interfering action to perform on the nonzero entries.
    • map

      Returns a stream consisting of the results of applying the given function to the nonzero entries.
      Parameters:
      mapper - a non-interfering, stateless function to map each nonzero entry to new value.
      Returns:
      the stream of the new values of nonzero entries.
    • update

      public void update(IntArrayElementFunction mapper)
      Updates each nonzero entry.
      Parameters:
      mapper - a function to map each nonzero entry to new value.
    • iterator

      public Iterator<SparseIntArray.Entry> iterator()
      Specified by:
      iterator in interface Iterable<SparseIntArray.Entry>
    • stream

      public Stream<SparseIntArray.Entry> stream()
      Returns the stream of nonzero entries.
      Returns:
      the stream of nonzero entries.
    • indexStream

      public IntStream indexStream()
      Returns the stream of the indices of nonzero entries.
      Returns:
      the stream of the indices of nonzero entries.
    • valueStream

      public IntStream valueStream()
      Returns the stream of the values of nonzero entries.
      Returns:
      the stream of the values of nonzero entries.
    • sort

      public void sort()
      Sorts the array elements such that the indices are in ascending order.
    • get

      public double get(int i)
      Returns the value of i-th entry.
      Parameters:
      i - the index of entry.
      Returns:
      the value of entry, 0.0 if the index doesn't exist in the array.
    • set

      public boolean set(int i, int x)
      Sets or adds an entry.
      Parameters:
      i - the index of entry.
      x - the value of entry.
      Returns:
      true if a new entry added, false if an existing entry updated.
    • append

      public void append(int i, int x)
      Append an entry to the array, optimizing for the case where the index is greater than all existing indices in the array.
      Parameters:
      i - the index of entry.
      x - the value of entry.
    • remove

      public void remove(int i)
      Removes an entry.
      Parameters:
      i - the index of entry.