org.apache.lucene.util

## Class BitSet

- java.lang.Object
- - org.apache.lucene.util.BitSet

- All Implemented Interfaces:
    Accountable, Bits
  Direct Known Subclasses:
    FixedBitSet, SparseFixedBitSet

      public abstract class BitSet
      extends Object
      implements Bits, Accountable

  Base implementation for a bit set.
  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 interface org.apache.lucene.util.Bits

      `EMPTY_ARRAY`

    - ### Fields inherited from interface org.apache.lucene.util.Accountable

      `NULL_ACCOUNTABLE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BitSet()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `approximateCardinality()` Return an approximation of the cardinality of this set.
    `abstract int` | `cardinality()` Return the number of bits that are set.
    `protected void` | `checkUnpositioned(DocIdSetIterator iter)` Assert that the current doc is -1.
    `abstract void` | `clear(int i)` Clear the bit at `i`.
    `abstract void` | `clear(int startIndex, int endIndex)` Clears a range of bits.
    `abstract int` | `nextSetBit(int index)` Returns the index of the first set bit starting at the index specified.
    `static BitSet` | `of(DocIdSetIterator it, int maxDoc)` Build a `BitSet` from the content of the provided `DocIdSetIterator`.
    `void` | `or(DocIdSetIterator iter)` Does in-place OR of the bits provided by the iterator.
    `abstract int` | `prevSetBit(int index)` Returns the index of the last set bit before or on the index specified.
    `abstract void` | `set(int i)` Set the bit at `i`.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.lucene.util.Bits

      `get, length`

    - ### Methods inherited from interface org.apache.lucene.util.Accountable

      `getChildResources, ramBytesUsed`

- - ### Constructor Detail

    - #### BitSet

          public BitSet()

  - ### Method Detail

    - #### of

          public static BitSet of(DocIdSetIterator it,
                                  int maxDoc)
                           throws IOException

      Build a `BitSet` from the content of the provided `DocIdSetIterator`. NOTE: this will fully consume the `DocIdSetIterator`.
      Throws:
        `IOException`

    - #### set

          public abstract void set(int i)

      Set the bit at `i`.

    - #### clear

          public abstract void clear(int i)

      Clear the bit at `i`.

    - #### clear

          public abstract void clear(int startIndex,
                                     int endIndex)

      Clears a range of bits.
      Parameters:
        `startIndex` - lower index
        `endIndex` - one-past the last bit to clear

    - #### cardinality

          public abstract int cardinality()

      Return the number of bits that are set. NOTE: this method is likely to run in linear time

    - #### approximateCardinality

          public int approximateCardinality()

      Return an approximation of the cardinality of this set. Some implementations may trade accuracy for speed if they have the ability to estimate the cardinality of the set without iterating over all the data. The default implementation returns `cardinality()`.

    - #### prevSetBit

          public abstract 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.

    - #### nextSetBit

          public abstract int nextSetBit(int index)

      Returns the index of the first set bit starting at the index specified. `DocIdSetIterator.NO_MORE_DOCS` is returned if there are no more set bits.

    - #### checkUnpositioned

          protected final void checkUnpositioned(DocIdSetIterator iter)

      Assert that the current doc is -1.

    - #### or

          public void or(DocIdSetIterator iter)
                  throws IOException

      Does in-place OR of the bits provided by the iterator. The state of the iterator after this operation terminates is undefined.
      Throws:
        `IOException`

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