Class DynamicPrimitiveLongList

java.lang.Object
java.util.AbstractCollection<Long>
java.util.AbstractList<Long>
io.opentelemetry.sdk.internal.DynamicPrimitiveLongList
All Implemented Interfaces:
Iterable<Long>, Collection<Long>, List<Long>, SequencedCollection<Long>

public class DynamicPrimitiveLongList extends AbstractList<Long>
A resizable list for storing primitive `long` values.

This class implements a dynamically resizable list specifically for primitive long values. The values are stored in a chain of arrays (named sub-array), so it can grow efficiently, by adding more sub-arrays per its defined size. The backing array also helps avoid auto-boxing and helps provide access to values as primitives without boxing.

The list is designed to minimize memory allocations, by:

  1. Adding sub-arrays and not creating new arrays and copying.
  2. When the size is changing to a smaller size, arrays are not removed.

Supported List<Long> methods:

  • get(int) - Retrieves the element at the specified position in this list as a Long object.
  • set(int, Long) - Replaces the element at the specified position in this list with the specified Long object.
  • size() - Returns the number of elements in this list.

Additional utility methods:

  • getLong(int) - Retrieves the element at the specified position in this list as a primitive long.
  • setLong(int, long) - Replaces the element at the specified position in this list with the specified primitive long element.
  • resizeAndClear(int) - Resizes the list to the specified size, resetting all elements to zero.

This class is internal and is hence not for public use. Its APIs are unstable and can change at any time.

This class is not thread-safe.

  • Field Details

    • DEFAULT_SUBARRAY_CAPACITY

      private static final int DEFAULT_SUBARRAY_CAPACITY
      See Also:
    • subarrayCapacity

      private final int subarrayCapacity
    • arrays

      private long[][] arrays
    • size

      private int size
    • arrayCount

      private int arrayCount
  • Constructor Details

    • DynamicPrimitiveLongList

      DynamicPrimitiveLongList()
    • DynamicPrimitiveLongList

      DynamicPrimitiveLongList(int subarrayCapacity)
  • Method Details