Package org.apache.lucene.internal.hppc

# Class LongArrayList

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

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

public class LongArrayList extends Object implements Iterable<LongCursor>, Cloneable, Accountable
An array-backed list of `long`.

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

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
`long[]`
`buffer`
Internal array for storing the list.
`int`
`elementsCount`
Current number of elements stored in `buffer`.
`static final long[]`
`EMPTY_ARRAY`
An immutable empty buffer (array).

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

`NULL_ACCOUNTABLE`

## Constructor Summary

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

## Method Summary

Modifier and Type
Method
Description
`void`
`add(long e1)`
`final void`
`add(long... elements)`
Vararg-signature method for adding elements at the end of the list.
`void`
`add(long[] elements, int start, int length)`
Add all elements from a range of given array to the list.
`int`
`addAll(Iterable<? extends LongCursor> iterable)`
Adds all elements from another iterable.
`int`
`addAll(LongArrayList list)`
Adds all elements from another list.
`void`
`clear()`
Sets the number of stored elements to zero.
`LongArrayList`
`clone()`
Clone this object.
`boolean`
`contains(long 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(LongArrayList other)`
Compare index-aligned elements against another `LongArrayList`.
`boolean`
`equals(Object obj)`
Returns `true` only if the other object is an instance of the same class and with the same elements.
`static LongArrayList`
`from(long... elements)`
Create a list from a variable number of arguments or an array of `int`.
`long`
`get(int index)`
`int`
`hashCode()`
`int`
`indexOf(long e1)`
`void`
`insert(int index, long e1)`
`boolean`
`isEmpty()`
`Iterator<LongCursor>`
`iterator()`
`int`
`lastIndexOf(long 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(long e)`
Removes all occurrences of `e` from this collection.
`long`
`removeAt(int index)`
Removes the element at the specified position in this container and returns it.
`boolean`
`removeElement(long e)`
Removes the first element that equals `e`, returning whether an element has been removed.
`int`
`removeFirst(long e1)`
Removes the first element that equals `e1`, returning its deleted position or `-1` if the element was not found.
`long`
`removeLast()`
Removes and returns the last element of this list.
`int`
`removeLast(long 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.
`LongArrayList`
`reverse()`
Reverses the elements in this list and returns this list.
`long`
`set(int index, long e1)`
`int`
`size()`
`LongArrayList`
`sort()`
Sorts the elements in this list and returns this list.
`LongStream`
`stream()`
Returns a stream of all the elements contained in this list.
`long[]`
`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 long[] EMPTY_ARRAY
An immutable empty buffer (array).

### buffer

public long[] 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

### LongArrayList

public LongArrayList()
New instance with sane defaults.

### LongArrayList

public LongArrayList(int expectedElements)
New instance with sane defaults.

Parameters:
  `expectedElements` - The expected number of elements guaranteed not to cause buffer expansion (inclusive).

### LongArrayList

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

## Method Details

### add

public void add(long e1)

### add

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

### add

public final void add(long... 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(LongArrayList list)
Adds all elements from another list.

### addAll

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

### insert

public void insert(int index, long e1)

### get

public long get(int index)

### set

public long set(int index, long e1)

### removeAt

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

### removeLast

public long 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(long e)
Removes the first element that equals `e`, returning whether an element has been removed.

### removeFirst

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

### removeLast

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

### removeAll

public int removeAll(long 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(long e1)

### indexOf

public int indexOf(long e1)

### lastIndexOf

public int lastIndexOf(long 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 long[] toArray()
The returned array is sized to match exactly the number of elements of the stack.

### clone

public LongArrayList 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(LongArrayList other)
Compare index-aligned elements against another `LongArrayList`.

### 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 LongStream stream()
Returns a stream of all the elements contained in this list.

### sort

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

### reverse

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

### iterator

public Iterator<LongCursor> iterator()

Specified by:
  `iterator` in interface `Iterable<LongCursor>`

### from

public static LongArrayList from(long... 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.