Package org.apache.lucene.internal.hppc

# Class IntArrayList

java.lang.Object
org.apache.lucene.internal.hppc.IntArrayList

All Implemented Interfaces:
  `Cloneable`, `Iterable<IntCursor>`, `Accountable`

Direct Known Subclasses:
  `MaxSizedIntArrayList`

public class IntArrayList extends Object implements Iterable<IntCursor>, Cloneable, Accountable
An array-backed list of `int`.

Mostly forked and trimmed from com.carrotsearch.hppc.IntArrayList

github: https://github.com/carrotsearch/hppc release 0.10.0

NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `int[]`
  `buffer`
  Internal array for storing the list.
  `int`
  `elementsCount`
  Current number of elements stored in `buffer`.
  `static final int[]`
  `EMPTY_ARRAY`
  An immutable empty buffer (array).

  ### Fields inherited from interface org.apache.lucene.util.Accountable

  `NULL_ACCOUNTABLE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `IntArrayList()`
  New instance with sane defaults.
  `IntArrayList(int expectedElements)`
  New instance with sane defaults.
  `IntArrayList(IntArrayList list)`
  Creates a new list from the elements of another list in its iteration order.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `add(int e1)`
  `final void`
  `add(int... elements)`
  Vararg-signature method for adding elements at the end of the list.
  `void`
  `add(int[] elements, int start, int length)`
  Add all elements from a range of given array to the list.
  `int`
  `addAll(Iterable<? extends IntCursor> iterable)`
  Adds all elements from another iterable.
  `int`
  `addAll(IntArrayList list)`
  Adds all elements from another list.
  `void`
  `clear()`
  Sets the number of stored elements to zero.
  `IntArrayList`
  `clone()`
  Clone this object.
  `boolean`
  `contains(int e1)`
  `protected void`
  `ensureBufferSpace(int expectedAdditions)`
  Ensures the internal buffer has enough free slots to store `expectedAdditions`.
  `void`
  `ensureCapacity(int expectedElements)`
  Ensure this container can hold at least the given number of elements without resizing its buffers.
  `protected boolean`
  `equalElements(IntArrayList other)`
  Compare index-aligned elements against another `IntArrayList`.
  `boolean`
  `equals(Object obj)`
  Returns `true` only if the other object is an instance of the same class and with the same elements.
  `static IntArrayList`
  `from(int... elements)`
  Create a list from a variable number of arguments or an array of `int`.
  `int`
  `get(int index)`
  `int`
  `hashCode()`
  `int`
  `indexOf(int e1)`
  `void`
  `insert(int index, int e1)`
  `boolean`
  `isEmpty()`
  `Iterator<IntCursor>`
  `iterator()`
  `int`
  `lastIndexOf(int e1)`
  `long`
  `ramBytesUsed()`
  Return the memory usage of this object in bytes.
  `void`
  `release()`
  Sets the number of stored elements to zero and releases the internal storage array.
  `int`
  `removeAll(int e)`
  Removes all occurrences of `e` from this collection.
  `int`
  `removeAt(int index)`
  Removes the element at the specified position in this container and returns it.
  `boolean`
  `removeElement(int e)`
  Removes the first element that equals `e`, returning whether an element has been removed.
  `int`
  `removeFirst(int e1)`
  Removes the first element that equals `e1`, returning its deleted position or `-1` if the element was not found.
  `int`
  `removeLast()`
  Removes and returns the last element of this list.
  `int`
  `removeLast(int e1)`
  Removes the last element that equals `e1`, returning its deleted position or `-1` if the element was not found.
  `void`
  `removeRange(int fromIndex, int toIndex)`
  Removes from this list all the elements with indexes between `fromIndex`, inclusive, and `toIndex`, exclusive.
  `void`
  `resize(int newSize)`
  Truncate or expand the list to the new size.
  `IntArrayList`
  `reverse()`
  Reverses the elements in this list and returns this list.
  `int`
  `set(int index, int e1)`
  `int`
  `size()`
  `IntArrayList`
  `sort()`
  Sorts the elements in this list and returns this list.
  `IntStream`
  `stream()`
  Returns a stream of all the elements contained in this list.
  `int[]`
  `toArray()`
  The returned array is sized to match exactly the number of elements of the stack.
  `String`
  `toString()`
  Convert the contents of this list to a human-friendly string.
  `void`
  `trimToSize()`
  Trim the internal buffer to the current size.

  ### Methods inherited from class java.lang.Object

  `finalize, getClass, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface org.apache.lucene.util.Accountable

  `getChildResources`

  ### Methods inherited from interface java.lang.Iterable

  `forEach, spliterator`

- ## Field Details

  - ### EMPTY_ARRAY

    public static final int[] EMPTY_ARRAY
    An immutable empty buffer (array).

  - ### buffer

    public int[] buffer
    Internal array for storing the list. The array may be larger than the current size (`size()`).

  - ### elementsCount

    public int elementsCount
    Current number of elements stored in `buffer`.

- ## Constructor Details

  - ### IntArrayList

    public IntArrayList()
    New instance with sane defaults.

  - ### IntArrayList

    public IntArrayList(int expectedElements)
    New instance with sane defaults.
    Parameters:
      `expectedElements` - The expected number of elements guaranteed not to cause buffer expansion (inclusive).

  - ### IntArrayList

    public IntArrayList(IntArrayList list)
    Creates a new list from the elements of another list in its iteration order.

- ## Method Details

  - ### add

    public void add(int e1)

  - ### add

    public void add(int[] elements, int start, int length)
    Add all elements from a range of given array to the list.

  - ### add

    public final void add(int... elements)
    Vararg-signature method for adding elements at the end of the list.

    This method is handy, but costly if used in tight loops (anonymous array passing)

  - ### addAll

    public int addAll(IntArrayList list)
    Adds all elements from another list.

  - ### addAll

    public int addAll(Iterable<? extends IntCursor> iterable)
    Adds all elements from another iterable.

  - ### insert

    public void insert(int index, int e1)

  - ### get

    public int get(int index)

  - ### set

    public int set(int index, int e1)

  - ### removeAt

    public int removeAt(int index)
    Removes the element at the specified position in this container and returns it.

  - ### removeLast

    public int removeLast()
    Removes and returns the last element of this list.

  - ### removeRange

    public void removeRange(int fromIndex, int toIndex)
    Removes from this list all the elements with indexes between `fromIndex`, inclusive, and `toIndex`, exclusive.

  - ### removeElement

    public boolean removeElement(int e)
    Removes the first element that equals `e`, returning whether an element has been removed.

  - ### removeFirst

    public int removeFirst(int e1)
    Removes the first element that equals `e1`, returning its deleted position or `-1` if the element was not found.

  - ### removeLast

    public int removeLast(int e1)
    Removes the last element that equals `e1`, returning its deleted position or `-1` if the element was not found.

  - ### removeAll

    public int removeAll(int e)
    Removes all occurrences of `e` from this collection.
    Parameters:
      `e` - Element to be removed from this collection, if present.
    Returns:
      The number of removed elements as a result of this call.

  - ### contains

    public boolean contains(int e1)

  - ### indexOf

    public int indexOf(int e1)

  - ### lastIndexOf

    public int lastIndexOf(int e1)

  - ### isEmpty

    public boolean isEmpty()

  - ### ensureCapacity

    public void ensureCapacity(int expectedElements)
    Ensure this container can hold at least the given number of elements without resizing its buffers.
    Parameters:
      `expectedElements` - The total number of elements, inclusive.

  - ### ensureBufferSpace

    protected void ensureBufferSpace(int expectedAdditions)
    Ensures the internal buffer has enough free slots to store `expectedAdditions`. Increases internal buffer size if needed.

  - ### resize

    public void resize(int newSize)
    Truncate or expand the list to the new size. If the list is truncated, the buffer will not be reallocated (use `trimToSize()` if you need a truncated buffer), but the truncated values will be reset to the default value (zero). If the list is expanded, the elements beyond the current size are initialized with JVM-defaults (zero or `null` values).

  - ### size

    public int size()

  - ### trimToSize

    public void trimToSize()
    Trim the internal buffer to the current size.

  - ### clear

    public void clear()
    Sets the number of stored elements to zero. Releases and initializes the internal storage array to default values. To clear the list without cleaning the buffer, simply set the `elementsCount` field to zero.

  - ### release

    public void release()
    Sets the number of stored elements to zero and releases the internal storage array.

  - ### toArray

    public int[] toArray()
    The returned array is sized to match exactly the number of elements of the stack.

  - ### clone

    public IntArrayList clone()
    Clone this object. The returned clone will reuse the same hash function and array resizing strategy.
    Overrides:
      `clone` in class `Object`

  - ### hashCode

    public int hashCode()
    Overrides:
      `hashCode` in class `Object`

  - ### equals

    public boolean equals(Object obj)
    Returns `true` only if the other object is an instance of the same class and with the same elements.
    Overrides:
      `equals` in class `Object`

  - ### equalElements

    protected boolean equalElements(IntArrayList other)
    Compare index-aligned elements against another `IntArrayList`.

  - ### toString

    public String toString()
    Convert the contents of this list to a human-friendly string.
    Overrides:
      `toString` in class `Object`

  - ### ramBytesUsed

    public long ramBytesUsed()
    Description copied from interface: `Accountable`
    Return the memory usage of this object in bytes. Negative values are illegal.
    Specified by:
      `ramBytesUsed` in interface `Accountable`

  - ### stream

    public IntStream stream()
    Returns a stream of all the elements contained in this list.

  - ### sort

    public IntArrayList sort()
    Sorts the elements in this list and returns this list.

  - ### reverse

    public IntArrayList reverse()
    Reverses the elements in this list and returns this list.

  - ### iterator

    public Iterator<IntCursor> iterator()
    Specified by:
      `iterator` in interface `Iterable<IntCursor>`

  - ### from

    public static IntArrayList from(int... elements)
    Create a list from a variable number of arguments or an array of `int`. The elements are copied from the argument to the internal buffer.