Package io.opentelemetry.sdk.internal
Class DynamicPrimitiveLongList
- All Implemented Interfaces:
Iterable<Long>
,Collection<Long>
,List<Long>
,SequencedCollection<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:
- Adding sub-arrays and not creating new arrays and copying.
- 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 aLong
object.set(int, Long)
- Replaces the element at the specified position in this list with the specifiedLong
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 Summary
FieldsModifier and TypeFieldDescriptionprivate int
private long[][]
private static final int
private int
private final int
Fields inherited from class java.util.AbstractList
modCount
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic DynamicPrimitiveLongList
empty()
private void
ensureCapacity
(int minCapacity) get
(int index) long
getLong
(int index) static DynamicPrimitiveLongList
of
(long... values) static DynamicPrimitiveLongList
ofSubArrayCapacity
(int subarrayCapacity) private String
outOfBoundsMsg
(int index) private void
rangeCheck
(int index) void
resizeAndClear
(int newSize) long
setLong
(int index, long element) int
size()
Methods inherited from class java.util.AbstractList
add, add, addAll, clear, equals, hashCode, indexOf, iterator, lastIndexOf, listIterator, listIterator, remove, removeRange, subList
Methods inherited from class java.util.AbstractCollection
addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray, toString
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
Methods inherited from interface java.util.List
addAll, addFirst, addLast, contains, containsAll, getFirst, getLast, isEmpty, remove, removeAll, removeFirst, removeLast, replaceAll, retainAll, reversed, sort, spliterator, toArray, toArray
-
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
-
of
-
ofSubArrayCapacity
-
empty
-
get
-
getLong
public long getLong(int index) -
set
-
setLong
public long setLong(int index, long element) -
size
public int size()- Specified by:
size
in interfaceCollection<Long>
- Specified by:
size
in interfaceList<Long>
- Specified by:
size
in classAbstractCollection<Long>
-
resizeAndClear
public void resizeAndClear(int newSize) -
ensureCapacity
private void ensureCapacity(int minCapacity) -
rangeCheck
private void rangeCheck(int index) -
outOfBoundsMsg
-