public final class SparseArrayLinkedList<E> extends Object
T.UnrolledLinkedList this list doesn't optimize addition and removal to achieve a balanced
utilization among chunks ie a chunk is removed only if empty and chunks can't be merged.
This list has been optimized for small-sized chunks (ideally <= 32 elements): this allow search/removal to
be performed with a greedy approach despite a sparse chunk utilization (ie chunks contains few sparse elements).| Constructor and Description |
|---|
SparseArrayLinkedList() |
SparseArrayLinkedList(int sparseArrayCapacity) |
| Modifier and Type | Method and Description |
|---|---|
void |
add(E e)
Appends
e to the end of this list. |
static <E> void |
addToSparseArrayList(List<org.apache.activemq.artemis.utils.collections.SparseArrayLinkedList.SparseArray<E>> sparseArrayList,
E e,
int sparseArrayCapacity) |
long |
clear(Consumer<? super E> consumer)
Clear while consuming (using the given
consumer all the elements of this list. |
static <E> long |
clearSparseArrayList(List<org.apache.activemq.artemis.utils.collections.SparseArrayLinkedList.SparseArray<E>> sparseArrayList,
Consumer<? super E> consumer) |
long |
remove(Predicate<? super E> filter)
Removes any element of the list matching the given predicate.
|
static <E> long |
removeFromSparseArrayList(List<org.apache.activemq.artemis.utils.collections.SparseArrayLinkedList.SparseArray<E>> sparseArrayList,
Predicate<? super E> filter) |
long |
size()
Returns the number of elements of this list.
|
int |
sparseArrayCapacity()
Returns the configured capacity of each sparse array/chunk.
|
int |
sparseArraysCount()
Returns the number of sparse arrays/chunks of this list.
|
public SparseArrayLinkedList()
public SparseArrayLinkedList(int sparseArrayCapacity)
public static <E> long removeFromSparseArrayList(List<org.apache.activemq.artemis.utils.collections.SparseArrayLinkedList.SparseArray<E>> sparseArrayList, Predicate<? super E> filter)
public static <E> void addToSparseArrayList(List<org.apache.activemq.artemis.utils.collections.SparseArrayLinkedList.SparseArray<E>> sparseArrayList, E e, int sparseArrayCapacity)
public static <E> long clearSparseArrayList(List<org.apache.activemq.artemis.utils.collections.SparseArrayLinkedList.SparseArray<E>> sparseArrayList, Consumer<? super E> consumer)
public void add(E e)
e to the end of this list.public long remove(Predicate<? super E> filter)
public long clear(Consumer<? super E> consumer)
consumer all the elements of this list.public long size()
public int sparseArrayCapacity()
public int sparseArraysCount()
Copyright © 2022 The Apache Software Foundation. All rights reserved.