public final class BitmapContainer extends Container implements Cloneable
| Modifier and Type | Field and Description |
|---|---|
protected static int |
MAX_CAPACITY |
static boolean |
USE_BRANCHLESS |
| Modifier | 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.
|
protected |
BitmapContainer(long[] newBitmap,
int newCardinality) |
| 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).
|
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).
|
void |
clear()
Empties the container
|
BitmapContainer |
clone() |
protected void |
computeCardinality()
Recomputes the cardinality of the bitmap.
|
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(int[] array)
Fill the array with set bits
|
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.
|
Container |
flip(short i)
Add a short to the container if it is not present, otherwise remove it.
|
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
|
ShortIterator |
getShortIterator()
Iterator to visit the short values in the container in ascending order.
|
static ShortIterator |
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.
|
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).
|
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
|
BitmapContainer |
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
|
String |
toString() |
void |
trim()
If possible, recover wasted memory.
|
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, andNot, getContainerName, iand, iandNot, intersects, ior, ixor, lazyIOR, lazyOR, or, rangeOfOnes, xorfinalize, 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)protected BitmapContainer(long[] newBitmap,
int newCardinality)
public int numberOfRunsLowerBound(int mustNotExceed)
mustNotExceed - maximum of runs beyond which counting is pointlesspublic int numberOfRunsAdjustment()
public Container runOptimize()
ContainerrunOptimize in class Containerpublic Container add(short i)
Containerpublic ArrayContainer and(ArrayContainer value2)
Containerpublic Container and(BitmapContainer value2)
Containerpublic Container andNot(ArrayContainer value2)
Containerpublic Container andNot(BitmapContainer value2)
Containerpublic void clear()
Containerpublic BitmapContainer clone()
public boolean contains(short i)
Containerpublic void deserialize(DataInput in) throws IOException
Containerdeserialize in class Containerin - the DataInput streamIOException - Signals that an I/O exception has occurred.protected void fillArray(int[] array)
array - container (should be sufficiently large)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 bitsprotected int getArraySizeInBytes()
ContainergetArraySizeInBytes in class Containerpublic int getCardinality()
ContainergetCardinality in class Containerpublic ShortIterator getShortIterator()
ContainergetShortIterator in class Containerpublic static ShortIterator getShortIterator(long[] bitmap)
bitmap - array to be iterated overpublic ShortIterator getReverseShortIterator()
ContainergetReverseShortIterator in class Containerpublic static ShortIterator getReverseShortIterator(long[] bitmap)
bitmap - array to be iterated overpublic int getSizeInBytes()
ContainergetSizeInBytes in class Containerpublic Container iand(ArrayContainer b2)
Containerpublic Container iand(BitmapContainer b2)
Containerpublic Container iandNot(ArrayContainer b2)
Containerpublic Container iandNot(BitmapContainer b2)
Containerpublic Container inot(int firstOfRange, int lastOfRange)
Containerpublic BitmapContainer ior(ArrayContainer value2)
Containerpublic Container ior(BitmapContainer b2)
Containerpublic Container ixor(ArrayContainer value2)
Containerpublic Container ixor(BitmapContainer b2)
Containerprotected void loadData(ArrayContainer arrayContainer)
public int nextSetBit(int i)
i - starting indexpublic int prevSetBit(int i)
i - starting indexpublic short nextUnsetBit(int i)
i - starting indexpublic Container not(int firstOfRange, int lastOfRange)
Containerpublic BitmapContainer or(ArrayContainer value2)
Containerpublic Container or(BitmapContainer value2)
Containerpublic void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
readExternal in interface ExternalizableIOExceptionClassNotFoundExceptionpublic Container remove(short i)
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 Containerprotected static int serializedSizeInBytes(int unusedCardinality)
public ArrayContainer toArrayContainer()
public 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)
Containerprotected Container ilazyor(ArrayContainer value2)
protected Container ilazyor(BitmapContainer x)
protected Container lazyor(ArrayContainer value2)
protected Container lazyor(BitmapContainer x)
protected void computeCardinality()
public int rank(short lowbits)
Containerpublic short select(int j)
Containerpublic Container limit(int maxcardinality)
Containerpublic Container iadd(int begin, int end)
Containerpublic Container iremove(int begin, int end)
Containerpublic Container flip(short i)
Containerpublic Container add(int begin, int end)
Containerpublic Container remove(int begin, int end)
Containerprotected Container lazyor(RunContainer x)
protected Container ilazyor(RunContainer x)
public Container and(RunContainer x)
Containerpublic Container andNot(RunContainer x)
Containerpublic Container iand(RunContainer x)
Containerpublic Container iandNot(RunContainer x)
Containerpublic Container ior(RunContainer x)
Containerpublic Container ixor(RunContainer x)
Containerpublic Container or(RunContainer x)
Containerpublic Container xor(RunContainer x)
Containerpublic Container repairAfterLazy()
ContainerrepairAfterLazy in class 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 containerCopyright © 2015. All Rights Reserved.