public final class BitmapContainer extends Container implements Cloneable
| Modifier and Type | Field and Description |
|---|---|
protected static int |
MAX_CAPACITY |
static boolean |
USE_BRANCHLESS
optimization flag: whether the cardinality of the bitmaps is maintained through branchless
operations
|
ContainerNames| Constructor and Description |
|---|
BitmapContainer()
Create a bitmap container with all bits set to false
|
BitmapContainer(int firstOfRun,
int lastOfRun)
Create a bitmap container with a run of ones from firstOfRun to lastOfRun.
|
BitmapContainer(long[] newBitmap,
int newCardinality)
Create a new container, no copy is made.
|
BitmapContainer(MappeableBitmapContainer bc)
Creates a new non-mappeable container from a mappeable one.
|
| Modifier and Type | Method and Description |
|---|---|
Container |
add(int begin,
int end)
Return a new container with all shorts in [begin,end) added using an unsigned interpretation.
|
Container |
add(short i)
Add a short to the container.
|
ArrayContainer |
and(ArrayContainer value2)
Computes the bitwise AND of this container with another (intersection).
|
Container |
and(BitmapContainer value2)
Computes the bitwise AND of this container with another (intersection).
|
Container |
and(RunContainer x)
Computes the bitwise AND of this container with another (intersection).
|
int |
andCardinality(ArrayContainer value2) |
int |
andCardinality(BitmapContainer value2) |
int |
andCardinality(RunContainer x) |
Container |
andNot(ArrayContainer value2)
Computes the bitwise ANDNOT of this container with another (difference).
|
Container |
andNot(BitmapContainer value2)
Computes the bitwise ANDNOT of this container with another (difference).
|
Container |
andNot(RunContainer x)
Computes the bitwise ANDNOT of this container with another (difference).
|
protected long |
bitValue(short i) |
protected int |
cardinalityInRange(int start,
int end) |
void |
clear()
Empties the container
|
BitmapContainer |
clone() |
protected void |
computeCardinality()
Recomputes the cardinality of the bitmap.
|
protected boolean |
contains(ArrayContainer arrayContainer) |
protected boolean |
contains(BitmapContainer bitmapContainer) |
protected boolean |
contains(RunContainer runContainer) |
boolean |
contains(short i)
Checks whether the contain contains the provided value
|
void |
deserialize(DataInput in)
Deserialize (recover) the container.
|
boolean |
equals(Object o) |
protected void |
fillArray(short[] array)
Fill the array with set bits
|
void |
fillLeastSignificant16bits(int[] x,
int i,
int mask)
Fill the least significant 16 bits of the integer array, starting at index i, with the short
values from this container.
|
int |
first()
Get the first integer held in the container
|
Container |
flip(short i)
Add a short to the container if it is not present, otherwise remove it.
|
void |
forEach(short msb,
IntConsumer ic)
Iterate through the values of this container and pass them
along to the IntConsumer, using msb as the 16 most significant bits.
|
protected int |
getArraySizeInBytes()
Size of the underlying array
|
int |
getCardinality()
Computes the distinct number of short values in the container.
|
ShortIterator |
getReverseShortIterator()
Iterator to visit the short values in the container in descending order.
|
static ShortIterator |
getReverseShortIterator(long[] bitmap)
Return a bitmap iterator over this array
|
PeekableShortIterator |
getShortIterator()
Iterator to visit the short values in the container in ascending order.
|
static PeekableShortIterator |
getShortIterator(long[] bitmap)
Return a bitmap iterator over this array
|
int |
getSizeInBytes()
Computes an estimate of the memory usage of this container.
|
int |
hashCode() |
Container |
iadd(int begin,
int end)
Add all shorts in [begin,end) using an unsigned interpretation.
|
Container |
iand(ArrayContainer b2)
Computes the in-place bitwise AND of this container with another (intersection).
|
Container |
iand(BitmapContainer b2)
Computes the in-place bitwise AND of this container with another (intersection).
|
Container |
iand(RunContainer x)
Computes the in-place bitwise AND of this container with another (intersection).
|
Container |
iandNot(ArrayContainer b2)
Computes the in-place bitwise ANDNOT of this container with another (difference).
|
Container |
iandNot(BitmapContainer b2)
Computes the in-place bitwise ANDNOT of this container with another (difference).
|
Container |
iandNot(RunContainer x)
Computes the in-place bitwise ANDNOT of this container with another (difference).
|
protected Container |
ilazyor(ArrayContainer value2) |
protected Container |
ilazyor(BitmapContainer x) |
protected Container |
ilazyor(RunContainer x) |
Container |
inot(int firstOfRange,
int lastOfRange)
Computes the in-place bitwise NOT of this container (complement).
|
boolean |
intersects(ArrayContainer value2)
Returns true if the current container intersects the other container.
|
boolean |
intersects(BitmapContainer value2)
Returns true if the current container intersects the other container.
|
boolean |
intersects(RunContainer x)
Returns true if the current container intersects the other container.
|
BitmapContainer |
ior(ArrayContainer value2)
Computes the in-place bitwise OR of this container with another (union).
|
Container |
ior(BitmapContainer b2)
Computes the in-place bitwise OR of this container with another (union).
|
Container |
ior(RunContainer x)
Computes the in-place bitwise OR of this container with another (union).
|
Container |
iremove(int begin,
int end)
Remove shorts in [begin,end) using an unsigned interpretation.
|
protected boolean |
isFull() |
Iterator<Short> |
iterator() |
Container |
ixor(ArrayContainer value2)
Computes the in-place bitwise XOR of this container with another (symmetric difference).
|
Container |
ixor(BitmapContainer b2)
Computes the in-place bitwise XOR of this container with another (symmetric difference).
|
Container |
ixor(RunContainer x)
Computes the in-place bitwise XOR of this container with another (symmetric difference).
|
int |
last()
Get the last integer held in the container
|
protected Container |
lazyor(ArrayContainer value2) |
protected Container |
lazyor(BitmapContainer x) |
protected Container |
lazyor(RunContainer x) |
Container |
limit(int maxcardinality)
Create a new Container containing at most maxcardinality integers.
|
protected void |
loadData(ArrayContainer arrayContainer) |
int |
nextSetBit(int i)
Find the index of the next set bit greater or equal to i, returns -1 if none found.
|
short |
nextUnsetBit(int i)
Find the index of the next unset bit greater or equal to i, returns -1 if none found.
|
Container |
not(int firstOfRange,
int lastOfRange)
Computes the bitwise NOT of this container (complement).
|
int |
numberOfRunsAdjustment()
Computes the number of runs
|
int |
numberOfRunsLowerBound(int mustNotExceed)
Counts how many runs there is in the bitmap, up to a maximum
|
Container |
or(ArrayContainer value2)
Computes the bitwise OR of this container with another (union).
|
Container |
or(BitmapContainer value2)
Computes the bitwise OR of this container with another (union).
|
Container |
or(RunContainer x)
Computes the bitwise OR of this container with another (union).
|
int |
prevSetBit(int i)
Find the index of the previous set bit less than or equal to i, returns -1 if none found.
|
int |
rank(short lowbits)
Rank returns the number of integers that are smaller or equal to x (Rank(infinity) would be
GetCardinality()).
|
void |
readExternal(ObjectInput in) |
Container |
remove(int begin,
int end)
Return a new container with all shorts in [begin,end) remove using an unsigned interpretation.
|
Container |
remove(short i)
Remove the short from this container.
|
Container |
repairAfterLazy()
The output of a lazyOR or lazyIOR might be an invalid container, this should be called on it.
|
Container |
runOptimize()
Convert to RunContainers, when the result is smaller.
|
short |
select(int j)
Return the jth value
|
void |
serialize(DataOutput out)
Serialize the container.
|
int |
serializedSizeInBytes()
Report the number of bytes required to serialize this container.
|
protected static int |
serializedSizeInBytes(int unusedCardinality) |
ArrayContainer |
toArrayContainer()
Copies the data to an array container
|
BitmapContainer |
toBitmapContainer()
Convert the current container to a BitmapContainer, if a conversion is needed.
|
LongBuffer |
toLongBuffer()
Return the content of this container as a LongBuffer.
|
MappeableContainer |
toMappeableContainer()
Convert to a mappeable container.
|
String |
toString() |
void |
trim()
If possible, recover wasted memory.
|
protected void |
updateCardinality(int prevOnes,
int newOnes) |
protected void |
writeArray(DataOutput out)
Write just the underlying array.
|
void |
writeExternal(ObjectOutput out) |
Container |
xor(ArrayContainer value2)
Computes the bitwise XOR of this container with another (symmetric difference).
|
Container |
xor(BitmapContainer value2)
Computes the bitwise XOR of this container with another (symmetric difference).
|
Container |
xor(RunContainer x)
Computes the bitwise XOR of this container with another (symmetric difference).
|
and, andCardinality, andNot, assertNonEmpty, contains, getContainerName, iand, iandNot, intersects, ior, ixor, lazyIOR, lazyOR, or, rangeOfOnes, xor, xorCardinalityfinalize, getClass, notify, notifyAll, wait, wait, waitforEach, spliteratorprotected static final int MAX_CAPACITY
public static final boolean USE_BRANCHLESS
public BitmapContainer()
public BitmapContainer(int firstOfRun,
int lastOfRun)
firstOfRun - first indexlastOfRun - last index (range is exclusive)public BitmapContainer(long[] newBitmap,
int newCardinality)
newBitmap - contentnewCardinality - desired cardinality.public BitmapContainer(MappeableBitmapContainer bc)
bc - the original containerpublic static ShortIterator getReverseShortIterator(long[] bitmap)
bitmap - array to be iterated overpublic static PeekableShortIterator getShortIterator(long[] bitmap)
bitmap - array to be iterated overprotected static int serializedSizeInBytes(int unusedCardinality)
public Container add(int begin, int end)
Containerpublic Container add(short i)
Containerpublic ArrayContainer and(ArrayContainer value2)
Containerpublic Container and(BitmapContainer value2)
Containerpublic Container and(RunContainer x)
Containerpublic int andCardinality(ArrayContainer value2)
andCardinality in class Containerpublic int andCardinality(BitmapContainer value2)
andCardinality in class Containerpublic int andCardinality(RunContainer x)
andCardinality in class Containerpublic Container andNot(ArrayContainer value2)
Containerpublic Container andNot(BitmapContainer value2)
Containerpublic Container andNot(RunContainer x)
Containerpublic void clear()
Containerpublic BitmapContainer clone()
protected void computeCardinality()
protected int cardinalityInRange(int start,
int end)
protected void updateCardinality(int prevOnes,
int newOnes)
public boolean contains(short i)
Containerprotected boolean contains(BitmapContainer bitmapContainer)
protected boolean contains(RunContainer runContainer)
protected boolean contains(ArrayContainer arrayContainer)
protected long bitValue(short i)
public void deserialize(DataInput in) throws IOException
Containerdeserialize in class Containerin - the DataInput streamIOException - Signals that an I/O exception has occurred.protected void fillArray(short[] array)
array - container (should be sufficiently large)public void fillLeastSignificant16bits(int[] x,
int i,
int mask)
ContainerfillLeastSignificant16bits in class Containerx - provided arrayi - starting indexmask - indicates most significant bitspublic Container flip(short i)
Containerprotected int getArraySizeInBytes()
ContainergetArraySizeInBytes in class Containerpublic int getCardinality()
ContainergetCardinality in class Containerpublic ShortIterator getReverseShortIterator()
ContainergetReverseShortIterator in class Containerpublic PeekableShortIterator getShortIterator()
ContainergetShortIterator in class Containerpublic int getSizeInBytes()
ContainergetSizeInBytes in class Containerpublic Container iadd(int begin, int end)
Containerpublic Container iand(ArrayContainer b2)
Containerpublic Container iand(BitmapContainer b2)
Containerpublic Container iand(RunContainer x)
Containerpublic Container iandNot(ArrayContainer b2)
Containerpublic Container iandNot(BitmapContainer b2)
Containerpublic Container iandNot(RunContainer x)
Containerprotected Container ilazyor(ArrayContainer value2)
protected Container ilazyor(BitmapContainer x)
protected Container ilazyor(RunContainer x)
public Container inot(int firstOfRange, int lastOfRange)
Containerpublic boolean intersects(ArrayContainer value2)
Containerintersects in class Containervalue2 - other containerpublic boolean intersects(BitmapContainer value2)
Containerintersects in class Containervalue2 - other containerpublic boolean intersects(RunContainer x)
Containerintersects in class Containerx - other containerpublic BitmapContainer ior(ArrayContainer value2)
Containerpublic Container ior(BitmapContainer b2)
Containerpublic Container ior(RunContainer x)
Containerpublic Container iremove(int begin, int end)
Containerpublic Container ixor(ArrayContainer value2)
Containerpublic Container ixor(BitmapContainer b2)
Containerpublic Container ixor(RunContainer x)
Containerprotected Container lazyor(ArrayContainer value2)
protected Container lazyor(BitmapContainer x)
protected Container lazyor(RunContainer x)
public Container limit(int maxcardinality)
Containerprotected void loadData(ArrayContainer arrayContainer)
public int nextSetBit(int i)
i - starting indexpublic short nextUnsetBit(int i)
i - starting indexpublic Container not(int firstOfRange, int lastOfRange)
Containerpublic int numberOfRunsAdjustment()
public int numberOfRunsLowerBound(int mustNotExceed)
mustNotExceed - maximum of runs beyond which counting is pointlesspublic Container or(ArrayContainer value2)
Containerprotected boolean isFull()
public Container or(BitmapContainer value2)
Containerpublic Container or(RunContainer x)
Containerpublic int prevSetBit(int i)
i - starting indexpublic int rank(short lowbits)
Containerpublic void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
readExternal in interface ExternalizableIOExceptionClassNotFoundExceptionpublic Container remove(int begin, int end)
Containerpublic Container remove(short i)
Containerpublic Container repairAfterLazy()
ContainerrepairAfterLazy in class Containerpublic Container runOptimize()
ContainerrunOptimize in class Containerpublic short select(int j)
Containerpublic void serialize(DataOutput out) throws IOException
Containerserialize in class Containerout - the DataOutput streamIOException - Signals that an I/O exception has occurred.public int serializedSizeInBytes()
ContainerserializedSizeInBytes in class Containerpublic ArrayContainer toArrayContainer()
public LongBuffer toLongBuffer()
public MappeableContainer toMappeableContainer()
ContainertoMappeableContainer in class Containerpublic void trim()
Containerprotected void writeArray(DataOutput out) throws IOException
ContainerwriteArray in class Containerout - output streamIOException - in case of failurepublic void writeExternal(ObjectOutput out) throws IOException
writeExternal in interface ExternalizableIOExceptionpublic Container xor(ArrayContainer value2)
Containerpublic Container xor(BitmapContainer value2)
Containerpublic Container xor(RunContainer x)
Containerpublic void forEach(short msb,
IntConsumer ic)
Containerpublic BitmapContainer toBitmapContainer()
ContainertoBitmapContainer in class Containerpublic int first()
ContainerCopyright © 2017. All rights reserved.