public class ImmutableRoaringBitmap extends Object implements Iterable<Integer>, Cloneable
import org.roaringbitmap.buffer.*;
//...
MutableRoaringBitmap rr1 = MutableRoaringBitmap.bitmapOf(1, 2, 3, 1000);
MutableRoaringBitmap rr2 = MutableRoaringBitmap.bitmapOf( 2, 3, 1010);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(bos);
rr1.serialize(dos);
rr2.serialize(dos);
dos.close();
ByteBuffer bb = ByteBuffer.wrap(bos.toByteArray());
ImmutableRoaringBitmap rrback1 = new ImmutableRoaringBitmap(bb);
bb.position(bb.position() + rrback1.serializedSizeInBytes());
ImmutableRoaringBitmap rrback2 = new ImmutableRoaringBitmap(bb);
It can also be constructed from a ByteBuffer (useful for memory mapping).
Objects of this class may reside almost entirely in memory-map files.| Modifier | Constructor and Description |
|---|---|
protected |
ImmutableRoaringBitmap() |
|
ImmutableRoaringBitmap(ByteBuffer b)
Constructs a new ImmutableRoaringBitmap.
|
| Modifier and Type | Method and Description |
|---|---|
static MutableRoaringBitmap |
and(ImmutableRoaringBitmap x1,
ImmutableRoaringBitmap x2)
Bitwise AND (intersection) operation.
|
static MutableRoaringBitmap |
andNot(ImmutableRoaringBitmap x1,
ImmutableRoaringBitmap x2)
Bitwise ANDNOT (difference) operation.
|
ImmutableRoaringBitmap |
clone() |
boolean |
contains(int x)
Checks whether the value in included, which is equivalent to checking if
the corresponding bit is set (get in BitSet class).
|
boolean |
equals(Object o) |
static MutableRoaringBitmap |
flip(ImmutableRoaringBitmap bm,
int rangeStart,
int rangeEnd)
Complements the bits in the given range, from rangeStart (inclusive)
rangeEnd (exclusive).
|
int |
getCardinality()
Returns the number of distinct integers added to the bitmap (e.g., number
of bits set).
|
IntIterator |
getIntIterator() |
int |
getSizeInBytes()
Estimate of the memory usage of this data structure.
|
int |
hashCode() |
boolean |
isEmpty()
Checks whether the bitmap is empty.
|
Iterator<Integer> |
iterator()
iterate over the positions of the true values.
|
MutableRoaringBitmap |
limit(int maxcardinality)
Create a new Roaring bitmap containing at most maxcardinality integers.
|
static MutableRoaringBitmap |
or(ImmutableRoaringBitmap x1,
ImmutableRoaringBitmap x2)
Bitwise OR (union) operation.
|
int |
rank(int x)
Rank returns the number of integers that are smaller or equal to x (Rank(infinity) would be GetCardinality()).
|
int |
select(int j)
Return the jth value stored in this bitmap.
|
void |
serialize(DataOutput out)
Serialize this bitmap.
|
int |
serializedSizeInBytes()
Report the number of bytes required for serialization.
|
int[] |
toArray()
Return the set values as an array.
|
MutableRoaringBitmap |
toMutableRoaringBitmap()
Copies the content of this bitmap to a bitmap that can be modified.
|
String |
toString()
A string describing the bitmap.
|
static MutableRoaringBitmap |
xor(ImmutableRoaringBitmap x1,
ImmutableRoaringBitmap x2)
Bitwise XOR (symmetric difference) operation.
|
finalize, getClass, notify, notifyAll, wait, wait, waitforEach, spliteratorprotected ImmutableRoaringBitmap()
public ImmutableRoaringBitmap(ByteBuffer b)
b - data sourcepublic static MutableRoaringBitmap and(ImmutableRoaringBitmap x1, ImmutableRoaringBitmap x2)
x1 - first bitmapx2 - other bitmapBufferFastAggregation.and(ImmutableRoaringBitmap...)public static MutableRoaringBitmap andNot(ImmutableRoaringBitmap x1, ImmutableRoaringBitmap x2)
x1 - first bitmapx2 - other bitmappublic static MutableRoaringBitmap flip(ImmutableRoaringBitmap bm, int rangeStart, int rangeEnd)
bm - bitmap being negatedrangeStart - inclusive beginning of rangerangeEnd - exclusive ending of rangepublic static MutableRoaringBitmap or(ImmutableRoaringBitmap x1, ImmutableRoaringBitmap x2)
x1 - first bitmapx2 - other bitmapBufferFastAggregation.or(ImmutableRoaringBitmap...),
BufferFastAggregation.horizontal_or(ImmutableRoaringBitmap...)public static MutableRoaringBitmap xor(ImmutableRoaringBitmap x1, ImmutableRoaringBitmap x2)
x1 - first bitmapx2 - other bitmapBufferFastAggregation.xor(ImmutableRoaringBitmap...),
BufferFastAggregation.horizontal_xor(ImmutableRoaringBitmap...)public ImmutableRoaringBitmap clone()
public boolean contains(int x)
x - integer valuepublic int getCardinality()
public boolean isEmpty()
public IntIterator getIntIterator()
public int getSizeInBytes()
public void serialize(DataOutput out) throws IOException
out - the DataOutput streamIOException - Signals that an I/O exception has occurred.public int serializedSizeInBytes()
public int[] toArray()
public MutableRoaringBitmap toMutableRoaringBitmap()
public String toString()
public int rank(int x)
x - upper limitpublic int select(int j)
j - index of the valuepublic MutableRoaringBitmap limit(int maxcardinality)
maxcardinality - maximal cardinalityCopyright © 2014. All Rights Reserved.