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

    Constructors
    Constructor and Description
    `FixedBitSet(FixedBitSet other)` Makes full copy.
    `FixedBitSet(int numBits)`
    `FixedBitSet(long[] storedBits, int numBits)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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
    `Bits` | `bits()` Optionally provides a `Bits` interface for random access to matching documents.
    `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.
    `FixedBitSet` | `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)` Returns the value of the bit with the specified `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()` Returns the number of bits in this set
    `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(long[] storedBits,
                     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`

    - #### bits

          public Bits bits()

      Description copied from class: `DocIdSet`
      Optionally provides a `Bits` interface for random access to matching documents.
      Overrides:
        `bits` in class `DocIdSet`
      Returns:
        `null`, if this `DocIdSet` does not support random access. In contrast to `DocIdSet.iterator()`, a return value of `null` does not imply that no documents match the filter! The default implementation does not provide random access, so you only need to implement this method if your DocIdSet can guarantee random access to every docid in O(1) time without external disk access (as `Bits` interface cannot throw `IOException`). This is generally true for bit sets like `FixedBitSet`, which return itself if they are used as `DocIdSet`.

    - #### length

          public int length()

      Description copied from interface: `Bits`
      Returns the number of bits in this set
      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)

      Description copied from interface: `Bits`
      Returns the value of the bit with the specified `index`.
      Specified by:
        `get` in interface `Bits`
      Parameters:
        `index` - index, should be non-negative and < `Bits.length()`. The result of passing negative or out of bounds values is undefined by this interface, just don't do it!
      Returns:
        `true` if the bit is set, `false` otherwise.

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

Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.