Package 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. UnlikeOpenBitSet
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 Description FixedBitSet(int numBits)
FixedBitSet(FixedBitSet other)
Makes full copy.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
and(DocIdSetIterator iter)
Does in-place AND of the bits provided by the iterator.void
and(FixedBitSet other)
this = this AND othervoid
andNot(DocIdSetIterator iter)
Does in-place AND NOT of the bits provided by the iterator.void
andNot(FixedBitSet other)
this = this AND NOT otherstatic int
bits2words(int numBits)
returns the number of 64 bit words it would take to hold numBitsint
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 setvoid
flip(int startIndex, int endIndex)
Flips a range of bitsboolean
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 aDocIdSetIterator
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 otherint
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
-
-
-
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 aDocIdSetIterator
to access the set. This implementation can returnnull
orDocIdSet.EMPTY_DOCIDSET.iterator()
if there are no docs that match.
-
isCacheable
public boolean isCacheable()
This DocIdSet implementation is cacheable.- Overrides:
isCacheable
in classDocIdSet
-
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!
-
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 indexendIndex
- one-past the last bit to flip
-
set
public void set(int startIndex, int endIndex)
Sets a range of bits- Parameters:
startIndex
- lower indexendIndex
- one-past the last bit to set
-
clear
public void clear(int startIndex, int endIndex)
Clears a range of bits.- Parameters:
startIndex
- lower indexendIndex
- one-past the last bit to clear
-
equals
public boolean equals(Object o)
returns true if both sets have the same bits set
-
-