public class PackedInts extends Object
Modifier and Type | Class and Description |
---|---|
static interface |
PackedInts.Mutable
A packed integer array that can be modified.
|
static interface |
PackedInts.Reader
A read-only random access array of positive integers.
|
static class |
PackedInts.ReaderImpl
A simple base for Readers that keeps track of valueCount and bitsPerValue.
|
static class |
PackedInts.Writer
A write-once Writer.
|
Constructor and Description |
---|
PackedInts() |
Modifier and Type | Method and Description |
---|---|
static int |
bitsRequired(long maxValue)
Returns how many bits are required to hold values up
to and including maxValue
|
static PackedInts.Mutable |
getMutable(int valueCount,
int bitsPerValue)
Create a packed integer array with the given amount of values initialized
to 0. the valueCount and the bitsPerValue cannot be changed after creation.
|
static int |
getNextFixedSize(int bitsPerValue)
Rounds bitsPerValue up to 8, 16, 32 or 64.
|
static PackedInts.Reader |
getReader(DataInput in)
Retrieve PackedInt data from the DataInput and return a packed int
structure based on it.
|
static int |
getRoundedFixedSize(int bitsPerValue)
Possibly wastes some storage in exchange for faster lookups
|
static PackedInts.Writer |
getWriter(DataOutput out,
int valueCount,
int bitsPerValue)
Create a packed integer array writer for the given number of values at the
given bits/value.
|
static long |
maxValue(int bitsPerValue)
Calculates the maximum unsigned long that can be expressed with the given
number of bits.
|
public static PackedInts.Reader getReader(DataInput in) throws IOException
in
- positioned at the beginning of a stored packed int structure.IOException
- if the structure could not be retrieved.public static PackedInts.Mutable getMutable(int valueCount, int bitsPerValue)
valueCount
- the number of elements.bitsPerValue
- the number of bits available for any given value.IOException
- if the Mutable could not be created. With the
current implementations, this never happens, but the method
signature allows for future persistence-backed Mutables.public static PackedInts.Writer getWriter(DataOutput out, int valueCount, int bitsPerValue) throws IOException
out
- the destination for the produced bits.valueCount
- the number of elements.bitsPerValue
- the number of bits available for any given value.IOException
- if bits could not be written to out.public static int bitsRequired(long maxValue)
maxValue
- the maximum value that should be representable.public static long maxValue(int bitsPerValue)
bitsPerValue
- the number of bits available for any given value.public static int getNextFixedSize(int bitsPerValue)
public static int getRoundedFixedSize(int bitsPerValue)