Class BufferBitSetUtil


  • public class BufferBitSetUtil
    extends java.lang.Object
    This class provides convenience functions to manipulate BitSet and MutableRoaringBitmap objects.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static int BLOCK_LENGTH  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      private static MappeableArrayContainer arrayContainerOf​(int from, int to, int cardinality, long[] words)  
      static MutableRoaringBitmap bitmapOf​(long[] words)
      Generate a MutableRoaringBitmap out of a long[], each long using little-endian representation of its bits
      static MutableRoaringBitmap bitmapOf​(java.nio.ByteBuffer bb)
      Efficiently generate a RoaringBitmap from an uncompressed byte array or ByteBuffer This method tries to minimise all kinds of memory allocation
      static MutableRoaringBitmap bitmapOf​(java.nio.ByteBuffer bb, 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
      static MutableRoaringBitmap bitmapOf​(java.util.BitSet bitSet)
      Generate a MutableRoaringBitmap out of a BitSet
      private static int cardinality​(int from, int to, long[] words)  
      private static MappeableContainer containerOf​(int from, int to, int blockCardinality, long[] words)  
      static boolean equals​(java.util.BitSet bitset, ImmutableRoaringBitmap bitmap)
      Compares a RoaringBitmap and a BitSet.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • BufferBitSetUtil

        public BufferBitSetUtil()
    • Method Detail

      • arrayContainerOf

        private static MappeableArrayContainer arrayContainerOf​(int from,
                                                                int to,
                                                                int cardinality,
                                                                long[] words)
      • bitmapOf

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

        public static MutableRoaringBitmap bitmapOf​(long[] words)
        Generate a MutableRoaringBitmap 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:
        for an equivalent
      • bitmapOf

        public static MutableRoaringBitmap bitmapOf​(java.nio.ByteBuffer bb)
        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
        Returns:
        roaring bitmap
      • bitmapOf

        public static MutableRoaringBitmap bitmapOf​(java.nio.ByteBuffer bb,
                                                    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
        wordsBuffer - buffer of length BitSetUtil.BLOCK_LENGTH
        Returns:
        roaring bitmap
      • cardinality

        private static int cardinality​(int from,
                                       int to,
                                       long[] words)
      • containerOf

        private static MappeableContainer containerOf​(int from,
                                                      int to,
                                                      int blockCardinality,
                                                      long[] words)
      • equals

        public static boolean equals​(java.util.BitSet bitset,
                                     ImmutableRoaringBitmap 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 equal