Class BitCounter32

  • All Implemented Interfaces:
    BitmapStorage32

    public final class BitCounter32
    extends java.lang.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
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private int oneBits  
    • Constructor Summary

      Constructors 
      Constructor Description
      BitCounter32()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addLiteralWord​(int newData)
      Virtually add literal words directly to the bitmap
      void addStreamOfEmptyWords​(boolean v, int number)
      virtually add many zeroes or ones.
      void addStreamOfLiteralWords​(Buffer32 buffer, int start, int number)
      virtually add several literal words.
      void addStreamOfNegatedLiteralWords​(Buffer32 buffer, int start, int number)
      virtually add several negated literal words.
      void addWord​(int newData)
      Virtually add words directly to the bitmap
      void clear()
      Empties the container.
      int getCount()
      As you act on this class, it records the number of set (true) bits.
      void setSizeInBitsWithinLastWord​(int bits)
      Sets the size in bits of the bitmap as an *uncompressed* bitmap.
      • Methods inherited from class java.lang.Object

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

      • oneBits

        private int oneBits
    • 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​(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​(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