public abstract class AbstractPagedMutable<T extends AbstractPagedMutable<T>> extends LongValues implements Accountable
PagedMutable
and PagedGrowableWriter
.Modifier and Type | Field and Description |
---|---|
(package private) int |
bitsPerValue |
(package private) static int |
MAX_BLOCK_SIZE |
(package private) static int |
MIN_BLOCK_SIZE |
(package private) int |
pageMask |
(package private) int |
pageShift |
(package private) long |
size |
(package private) PackedInts.Mutable[] |
subMutables |
IDENTITY, ZEROES
Constructor and Description |
---|
AbstractPagedMutable(int bitsPerValue,
long size,
int pageSize) |
Modifier and Type | Method and Description |
---|---|
protected long |
baseRamBytesUsed() |
protected void |
fillPages() |
long |
get(long index)
Get value at
index . |
T |
grow()
Similar to
ArrayUtil.grow(long[]) . |
T |
grow(long minSize)
Similar to
ArrayUtil.grow(long[], int) . |
(package private) int |
indexInPage(long index) |
(package private) int |
lastPageSize(long size) |
protected abstract PackedInts.Mutable |
newMutable(int valueCount,
int bitsPerValue) |
protected abstract T |
newUnfilledCopy(long newSize) |
(package private) int |
pageIndex(long index) |
(package private) int |
pageSize() |
long |
ramBytesUsed()
Return the memory usage of this object in bytes.
|
T |
resize(long newSize)
Create a new copy of size
newSize based on the content of
this buffer. |
void |
set(long index,
long value)
Set value at
index . |
long |
size()
The number of values.
|
java.lang.String |
toString() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getChildResources
static final int MIN_BLOCK_SIZE
static final int MAX_BLOCK_SIZE
final long size
final int pageShift
final int pageMask
final PackedInts.Mutable[] subMutables
final int bitsPerValue
AbstractPagedMutable(int bitsPerValue, long size, int pageSize)
protected final void fillPages()
protected abstract PackedInts.Mutable newMutable(int valueCount, int bitsPerValue)
final int lastPageSize(long size)
final int pageSize()
public final long size()
final int pageIndex(long index)
final int indexInPage(long index)
public final long get(long index)
LongValues
index
.get
in class LongValues
public final void set(long index, long value)
index
.protected long baseRamBytesUsed()
public long ramBytesUsed()
Accountable
ramBytesUsed
in interface Accountable
protected abstract T newUnfilledCopy(long newSize)
public final T resize(long newSize)
newSize
based on the content of
this buffer. This method is much more efficient than creating a new
instance and copying values one by one.public final T grow(long minSize)
ArrayUtil.grow(long[], int)
.public final T grow()
ArrayUtil.grow(long[])
.public final java.lang.String toString()
toString
in class java.lang.Object