Class ContainerAppender<C extends WordStorage<C>,T extends BitmapDataProvider & AppendableStorage<C>>

java.lang.Object
org.roaringbitmap.ContainerAppender<C,T>
All Implemented Interfaces:
Supplier<T>, RoaringBitmapWriter<T>

public class ContainerAppender<C extends WordStorage<C>,T extends BitmapDataProvider & AppendableStorage<C>> 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 ContainerAppender is to get bitmaps quickly. You should benchmark your particular use case to see if it helps.
 

     //...

     RoaringBitmapWriter<RoaringBitmap> writer =
        RoaringBitmapWriter.writer().get();
     for (int i :....) {
       writer.add(i);
     }
     writer.flush(); // important
 
 
  • Method Details

    • getUnderlying

      public T getUnderlying()
      Grab a reference to the underlying bitmap
      Specified by:
      getUnderlying in interface RoaringBitmapWriter<C extends WordStorage<C>>
      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:
      add in interface RoaringBitmapWriter<C extends WordStorage<C>>
      Parameters:
      value - the value to add.
    • add

      public void add(long min, long max)
      Description copied from interface: RoaringBitmapWriter
      Add a range to the bitmap
      Specified by:
      add in interface RoaringBitmapWriter<C extends WordStorage<C>>
      Parameters:
      min - the inclusive min value
      max - the exclusive max value
    • addMany

      public void addMany(int... values)
      Description copied from interface: RoaringBitmapWriter
      Adds many values to the bitmap.
      Specified by:
      addMany in interface RoaringBitmapWriter<C extends WordStorage<C>>
      Parameters:
      values - the values to add
    • flush

      public void flush()
      Ensures that any buffered additions are flushed to the underlying bitmap.
      Specified by:
      flush in interface RoaringBitmapWriter<C extends WordStorage<C>>
    • reset

      public void reset()
      Description copied from interface: RoaringBitmapWriter
      Resets the writer so it can be reused, must release the reference to the underlying bitmap
      Specified by:
      reset in interface RoaringBitmapWriter<C extends WordStorage<C>>