Class ImmutableRoaringArray

java.lang.Object
org.roaringbitmap.buffer.ImmutableRoaringArray
All Implemented Interfaces:
Cloneable, PointableRoaringArray

public final class ImmutableRoaringArray extends Object implements PointableRoaringArray
This is the underlying data structure for an ImmutableRoaringBitmap. This class is not meant for end-users.
  • Field Details

  • Constructor Details

    • ImmutableRoaringArray

      protected ImmutableRoaringArray(ByteBuffer bbf)
      Create an array based on a previously serialized ByteBuffer. The input ByteBuffer is effectively copied (with the slice operation) so you should expect the provided ByteBuffer position/mark/limit/order to remain unchanged.
      Parameters:
      bbf - The source ByteBuffer
  • Method Details

    • advanceUntil

      public int advanceUntil(char x, int pos)
      Description copied from interface: PointableRoaringArray
      Find the smallest integer index larger than pos such that getKeyAtIndex(index)>=x. If none can be found, return size.
      Specified by:
      advanceUntil in interface PointableRoaringArray
      Parameters:
      x - minimal value
      pos - index to exceed
      Returns:
      the smallest index greater than pos such that getKeyAtIndex(index) is at least as large as min, or size if it is not possible.
    • clone

      public ImmutableRoaringArray clone()
      Description copied from interface: PointableRoaringArray
      Create an independent copy of the underlying array
      Specified by:
      clone in interface PointableRoaringArray
      Overrides:
      clone in class Object
      Returns:
      a copy
    • getCardinality

      public int getCardinality(int k)
      Description copied from interface: PointableRoaringArray
      Returns the cardinality of the container at the given index. This method is expected to be fast.
      Specified by:
      getCardinality in interface PointableRoaringArray
      Parameters:
      k - index
      Returns:
      the cardinality
    • getContainerIndex

      public int getContainerIndex(char x)
      Description copied from interface: PointableRoaringArray
      Returns either the index of the container corresponding to key x, or a negative value.
      Specified by:
      getContainerIndex in interface PointableRoaringArray
      Parameters:
      x - 16-bit key
      Returns:
      index of container (negative value if no container found)
    • getContainerAtIndex

      public MappeableContainer getContainerAtIndex(int i)
      Specified by:
      getContainerAtIndex in interface PointableRoaringArray
      Parameters:
      i - index
      Returns:
      matching container
    • containsForContainerAtIndex

      public boolean containsForContainerAtIndex(int i, char x)
      Description copied from interface: PointableRoaringArray
      This checks whether the container at index i has the value x. This can be faster than calling "getContainerAtIndex" and then calling contains.
      Specified by:
      containsForContainerAtIndex in interface PointableRoaringArray
      Parameters:
      i - container index (assumed to be non-negative)
      x - 16-bit value to check
      Returns:
      whether the container contains at index i contains x
    • getContainerPointer

      public MappeableContainerPointer getContainerPointer()
      Specified by:
      getContainerPointer in interface PointableRoaringArray
      Returns:
      a ContainerPointer to iterator over the array
    • getContainerPointer

      public MappeableContainerPointer getContainerPointer(int startIndex)
      Specified by:
      getContainerPointer in interface PointableRoaringArray
      Parameters:
      startIndex - starting index
      Returns:
      a ContainerPointer to iterator over the array initially positioned at startIndex
    • getIndex

      public int getIndex(char x)
      Specified by:
      getIndex in interface PointableRoaringArray
      Parameters:
      x - 16-bit key
      Returns:
      corresponding index
    • getKeyAtIndex

      public char getKeyAtIndex(int i)
      Specified by:
      getKeyAtIndex in interface PointableRoaringArray
      Parameters:
      i - the index
      Returns:
      16-bit key at the index
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • hasRunCompression

      public boolean hasRunCompression()
      Description copied from interface: PointableRoaringArray
      Check whether this bitmap has had its runs compressed.
      Specified by:
      hasRunCompression in interface PointableRoaringArray
      Returns:
      whether this bitmap has run compression
    • headerSize

      protected int headerSize(boolean hasrun)
    • isEmpty

      public boolean isEmpty()
      Returns true if this bitmap is empty.
      Returns:
      true if empty
    • serialize

      public void serialize(DataOutput out) throws IOException
      Serialize. The current bitmap is not modified.
      Specified by:
      serialize in interface PointableRoaringArray
      Parameters:
      out - the DataOutput stream
      Throws:
      IOException - Signals that an I/O exception has occurred.
    • serialize

      public void serialize(ByteBuffer buffer)
      Description copied from interface: PointableRoaringArray
      Serialize. The current bitmap is not modified.
      Specified by:
      serialize in interface PointableRoaringArray
      Parameters:
      buffer - the buffer to serialize to
    • serializedSizeInBytes

      public int serializedSizeInBytes()
      Specified by:
      serializedSizeInBytes in interface PointableRoaringArray
      Returns:
      the size that the data structure occupies on disk
    • size

      public int size()
      Specified by:
      size in interface PointableRoaringArray
      Returns:
      number of keys
    • first

      public int first()
      Description copied from interface: PointableRoaringArray
      Gets the first value in the array
      Specified by:
      first in interface PointableRoaringArray
      Returns:
      te first value in the array
    • last

      public int last()
      Description copied from interface: PointableRoaringArray
      Gets the last value in the array
      Specified by:
      last in interface PointableRoaringArray
      Returns:
      te last value in the array