## org.apache.lucene.util
Class FixedBitSet

    java.lang.Object
      org.apache.lucene.search.DocIdSet
          org.apache.lucene.util.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.

Nested Class Summary

Nested classes/interfaces inherited from interface org.apache.lucene.util.Bits
`Bits.MatchAllBits, Bits.MatchNoBits`

Field Summary

Fields inherited from class org.apache.lucene.search.DocIdSet
`EMPTY_DOCIDSET`

Fields inherited from interface org.apache.lucene.util.Bits
`EMPTY_ARRAY`

Constructor Summary
`FixedBitSet(FixedBitSet other)` Makes full copy.
`FixedBitSet(int numBits)`

Method Summary
`void` `and(DocIdSetIterator iter)` Does in-place AND of the bits provided by the iterator.
`void` `and(FixedBitSet other)` this = this AND other
`void` `andNot(DocIdSetIterator iter)` Does in-place AND NOT of the bits provided by the iterator.
`void` `andNot(FixedBitSet other)` this = this AND NOT other
`static int` `bits2words(int numBits)` returns the number of 64 bit words it would take to hold numBits
`int` `cardinality()` Returns number of set bits.
`void` `clear(int index)`
`void` `clear(int startIndex, int endIndex)` Clears a range of bits.
`Object` `clone()`
`boolean` `equals(Object o)` returns true if both sets have the same bits set
`void` `flip(int startIndex, int endIndex)` Flips a range of bits
`boolean` `get(int index)`
`boolean` `getAndClear(int index)`
`boolean` `getAndSet(int index)`
`long[]` `getBits()` Expert.
`int` `hashCode()`
`boolean` `isCacheable()` This DocIdSet implementation is cacheable.
`DocIdSetIterator` `iterator()` Provides a `DocIdSetIterator` to access the set.
`int` `length()`
`int` `nextSetBit(int index)` Returns the index of the first set bit starting at the index specified.
`void` `or(DocIdSetIterator iter)` Does in-place OR of the bits provided by the iterator.
`void` `or(FixedBitSet other)` this = this OR other
`int` `prevSetBit(int index)` Returns the index of the last set bit before or on the index specified.
`void` `set(int index)`
`void` `set(int startIndex, int endIndex)` Sets a range of bits

Methods inherited from class java.lang.Object
`finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

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

### iterator

    public DocIdSetIterator iterator()

  Description copied from class: `DocIdSet`
  Provides a `DocIdSetIterator` to access the set. This implementation can return `null` or `DocIdSet.EMPTY_DOCIDSET.iterator()` if there are no docs that match.

  Specified by:
    `iterator` in class `DocIdSet`

### 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(DocIdSetIterator iter)
            throws IOException

  Does in-place OR of the bits provided by the iterator.

  Throws:
    `IOException`

### or

    public void or(FixedBitSet other)

  this = this OR other

### and

    public void and(DocIdSetIterator iter)
             throws IOException

  Does in-place AND of the bits provided by the iterator.

  Throws:
    `IOException`

### and

    public void and(FixedBitSet other)

  this = this AND other

### andNot

    public void andNot(DocIdSetIterator iter)
                throws IOException

  Does in-place AND NOT of the bits provided by the iterator.

  Throws:
    `IOException`

### 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

### clone

    public Object clone()

  Overrides:
    `clone` in class `Object`

### 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`