Class FixedBitSet

  • All Implemented Interfaces:
    Bits

    public final class FixedBitSet
    extends DocIdSet
    implements Bits
    BitSet of fixed length (numBits), backed by accessible (getBits()) long[], accessed with an int index, implementing Bits and DocIdSet. Unlike OpenBitSet this bit set does not auto-expand, cannot handle long index, and does not have fastXX/XX variants (just X).
    NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
    • Constructor Detail

      • FixedBitSet

        public FixedBitSet​(int numBits)
      • FixedBitSet

        public FixedBitSet​(FixedBitSet other)
        Makes full copy.
    • Method Detail

      • bits2words

        public static int bits2words​(int numBits)
        returns the number of 64 bit words it would take to hold numBits
      • length

        public int length()
        Specified by:
        length in interface Bits
      • isCacheable

        public boolean isCacheable()
        This DocIdSet implementation is cacheable.
        Overrides:
        isCacheable in class DocIdSet
      • getBits

        public long[] getBits()
        Expert.
      • cardinality

        public int cardinality()
        Returns number of set bits. NOTE: this visits every long in the backing bits array, and the result is not internally cached!
      • get

        public boolean get​(int index)
        Specified by:
        get in interface Bits
      • set

        public void set​(int index)
      • getAndSet

        public boolean getAndSet​(int index)
      • clear

        public void clear​(int index)
      • getAndClear

        public boolean getAndClear​(int index)
      • nextSetBit

        public int nextSetBit​(int index)
        Returns the index of the first set bit starting at the index specified. -1 is returned if there are no more set bits.
      • prevSetBit

        public int prevSetBit​(int index)
        Returns the index of the last set bit before or on the index specified. -1 is returned if there are no more set bits.
      • or

        public void or​(FixedBitSet other)
        this = this OR other
      • and

        public void and​(FixedBitSet other)
        this = this AND other
      • andNot

        public void andNot​(FixedBitSet other)
        this = this AND NOT other
      • flip

        public void flip​(int startIndex,
                         int endIndex)
        Flips a range of bits
        Parameters:
        startIndex - lower index
        endIndex - one-past the last bit to flip
      • set

        public void set​(int startIndex,
                        int endIndex)
        Sets a range of bits
        Parameters:
        startIndex - lower index
        endIndex - one-past the last bit to set
      • clear

        public void clear​(int startIndex,
                          int endIndex)
        Clears a range of bits.
        Parameters:
        startIndex - lower index
        endIndex - one-past the last bit to clear
      • equals

        public boolean equals​(Object o)
        returns true if both sets have the same bits set
        Overrides:
        equals in class Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object