Class BitSetUtil

java.lang.Object
org.roaringbitmap.BitSetUtil

public class BitSetUtil extends Object
This class provides convenience functions to manipulate BitSet and RoaringBitmap objects.
  • Field Details

  • Constructor Details

    • BitSetUtil

      public BitSetUtil()
  • Method Details

    • bitsetOf

      public static BitSet bitsetOf(RoaringBitmap bitmap)
      Convert a RoaringBitmap to a BitSet.

      Equivalent to calling BitSet.valueOf(BitSetUtil.toLongArray(bitmap)).

    • bitsetOfWithoutCopy

      public static BitSet bitsetOfWithoutCopy(RoaringBitmap bitmap)
      Convert a RoaringBitmap to a BitSet without copying to an intermediate array.
    • toByteArray

      public static byte[] toByteArray(RoaringBitmap bitmap)
      Returns an array of little-endian ordered bytes, given a RoaringBitmap.

      See BitSet.toByteArray().

    • toLongArray

      public static long[] toLongArray(RoaringBitmap bitmap)
      Returns an array of long, given a RoaringBitmap.

      See BitSet.toLongArray().

    • arrayContainerBufferOf

      public static char[] arrayContainerBufferOf(int from, int to, int cardinality, long[] words)
      Creates array container's content char buffer.
      Parameters:
      from - first value of the range
      to - last value of the range
      cardinality - new buffer cardinality, expected to be less than 4096 and more than present values in given bitmap
      words - bitmap
      Returns:
      array container's content char buffer
    • bitmapOf

      public static RoaringBitmap bitmapOf(BitSet bitSet)
      Generate a RoaringBitmap out of a BitSet
      Parameters:
      bitSet - original bitset (will not be modified)
      Returns:
      roaring bitmap equivalent to BitSet
    • bitmapOf

      public static RoaringBitmap bitmapOf(long[] words)
      Generate a RoaringBitmap out of a long[], each long using little-endian representation of its bits
      Parameters:
      words - array of longs (will not be modified)
      Returns:
      roaring bitmap
      See Also:
    • bitmapOf

      public static RoaringBitmap bitmapOf(ByteBuffer bb, boolean fastRank)
      Efficiently generate a RoaringBitmap from an uncompressed byte array or ByteBuffer This method tries to minimise all kinds of memory allocation
      Parameters:
      bb - the uncompressed bitmap
      fastRank - if set, returned bitmap is of type FastRankRoaringBitmap
      Returns:
      roaring bitmap
    • bitmapOf

      public static RoaringBitmap bitmapOf(ByteBuffer bb, boolean fastRank, long[] wordsBuffer)
      Efficiently generate a RoaringBitmap from an uncompressed byte array or ByteBuffer This method tries to minimise all kinds of memory allocation
      You can provide a cached wordsBuffer for avoiding 8 KB of extra allocation on every call No reference is kept to the wordsBuffer, so it can be cached as a ThreadLocal
      Parameters:
      bb - the uncompressed bitmap
      fastRank - if set, returned bitmap is of type FastRankRoaringBitmap
      wordsBuffer - buffer of length BLOCK_LENGTH
      Returns:
      roaring bitmap
    • equals

      public static boolean equals(BitSet bitset, RoaringBitmap bitmap)
      Compares a RoaringBitmap and a BitSet. They are equal if and only if they contain the same set of integers.
      Parameters:
      bitset - first object to be compared
      bitmap - second object to be compared
      Returns:
      whether they are equals