Class BitCounter32

  • All Implemented Interfaces:
    BitmapStorage32

    public final class BitCounter32
    extends Object
    implements BitmapStorage32
    BitCounter is a fake bitset data structure. Instead of storing the actual data, it only records the number of set bits.
    Since:
    0.5.0
    Author:
    Daniel Lemire and David McIntosh
    • Constructor Detail

      • BitCounter32

        public BitCounter32()
    • Method Detail

      • addWord

        public void addWord​(int newData)
        Virtually add words directly to the bitmap
        Specified by:
        addWord in interface BitmapStorage32
        Parameters:
        newData - the word
      • addLiteralWord

        public void addLiteralWord​(int newData)
        Virtually add literal words directly to the bitmap
        Specified by:
        addLiteralWord in interface BitmapStorage32
        Parameters:
        newData - the word
      • addStreamOfLiteralWords

        public void addStreamOfLiteralWords​(com.googlecode.javaewah32.Buffer32 buffer,
                                            int start,
                                            int number)
        virtually add several literal words.
        Specified by:
        addStreamOfLiteralWords in interface BitmapStorage32
        Parameters:
        buffer - the buffer wrapping the literal words
        start - the starting point in the array
        number - the number of literal words to add
      • addStreamOfEmptyWords

        public void addStreamOfEmptyWords​(boolean v,
                                          int number)
        virtually add many zeroes or ones.
        Specified by:
        addStreamOfEmptyWords in interface BitmapStorage32
        Parameters:
        v - zeros or ones
        number - how many to words add
      • addStreamOfNegatedLiteralWords

        public void addStreamOfNegatedLiteralWords​(com.googlecode.javaewah32.Buffer32 buffer,
                                                   int start,
                                                   int number)
        virtually add several negated literal words.
        Specified by:
        addStreamOfNegatedLiteralWords in interface BitmapStorage32
        Parameters:
        buffer - the buffer wrapping the literal words
        start - the starting point in the array
        number - the number of literal words to add
      • getCount

        public int getCount()
        As you act on this class, it records the number of set (true) bits.
        Returns:
        number of set bits
      • setSizeInBitsWithinLastWord

        public void setSizeInBitsWithinLastWord​(int bits)
        Description copied from interface: BitmapStorage32
        Sets the size in bits of the bitmap as an *uncompressed* bitmap. Normally, this is used to reduce the size of the bitmaps within the scope of the last word. Specifically, this means that (sizeInBits()+31)/32 must be equal to (size+31)/32. If needed, the bitmap can be further padded with zeroes.
        Specified by:
        setSizeInBitsWithinLastWord in interface BitmapStorage32
        Parameters:
        bits - the size in bits