Package org.roaringbitmap
Class ConstantMemoryContainerAppender<T extends BitmapDataProvider & AppendableStorage<Container>>
java.lang.Object
org.roaringbitmap.ConstantMemoryContainerAppender<T>
- All Implemented Interfaces:
Supplier<T>,RoaringBitmapWriter<T>
public class ConstantMemoryContainerAppender<T extends BitmapDataProvider & AppendableStorage<Container>>
extends Object
implements RoaringBitmapWriter<T>
This class can be used to write quickly values to a bitmap.
The values are expected to be (increasing) sorted order.
Values are first written to a temporary internal buffer, but
the underlying bitmap can forcefully synchronize by calling "flush"
(although calling flush to often would defeat the performance
purpose of this class).
The main use case for an ConstantMemoryContainerAppender is to get bitmaps quickly.
You should benchmark your particular use case to see if it helps.
//...
RoaringBitmapWriter<RoaringBitmap> writer =
RoaringBitmapWriter.writer().constantMemory().get();
for (int i :....) {
writer.add(i);
}
writer.flush(); // important
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.roaringbitmap.RoaringBitmapWriter
RoaringBitmapWriter.BufferWizard, RoaringBitmapWriter.FastRankRoaringBitmapWizard, RoaringBitmapWriter.RoaringBitmapWizard, RoaringBitmapWriter.RoaringWizard<T extends RoaringBitmap>, RoaringBitmapWriter.Wizard<C extends WordStorage<C>,T extends BitmapDataProvider & AppendableStorage<C>> -
Method Summary
Modifier and TypeMethodDescriptionvoidadd(int value)Adds the value to the underlying bitmap.voidadd(long min, long max)Add a range to the bitmapvoidaddMany(int... values)Adds many values to the bitmap.voidflush()Ensures that any buffered additions are flushed to the underlying bitmap.Grab a reference to the underlying bitmapvoidreset()Resets the writer so it can be reused, must release the reference to the underlying bitmapMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.roaringbitmap.RoaringBitmapWriter
get
-
Method Details
-
getUnderlying
Grab a reference to the underlying bitmap- Specified by:
getUnderlyingin interfaceRoaringBitmapWriter<T extends BitmapDataProvider & AppendableStorage<Container>>- Returns:
- the underlying bitmap
-
add
public void add(int value)Adds the value to the underlying bitmap. The data might be added to a temporary buffer. You should call "flush" when you are done.- Specified by:
addin interfaceRoaringBitmapWriter<T extends BitmapDataProvider & AppendableStorage<Container>>- Parameters:
value- the value to add.
-
addMany
public void addMany(int... values)Description copied from interface:RoaringBitmapWriterAdds many values to the bitmap.- Specified by:
addManyin interfaceRoaringBitmapWriter<T extends BitmapDataProvider & AppendableStorage<Container>>- Parameters:
values- the values to add
-
add
public void add(long min, long max)Description copied from interface:RoaringBitmapWriterAdd a range to the bitmap- Specified by:
addin interfaceRoaringBitmapWriter<T extends BitmapDataProvider & AppendableStorage<Container>>- Parameters:
min- the inclusive min valuemax- the exclusive max value
-
flush
public void flush()Ensures that any buffered additions are flushed to the underlying bitmap.- Specified by:
flushin interfaceRoaringBitmapWriter<T extends BitmapDataProvider & AppendableStorage<Container>>
-
reset
public void reset()Description copied from interface:RoaringBitmapWriterResets the writer so it can be reused, must release the reference to the underlying bitmap- Specified by:
resetin interfaceRoaringBitmapWriter<T extends BitmapDataProvider & AppendableStorage<Container>>
-