| java.lang.Object org.apache.solr.util.BitSetIterator
BitSetIterator | public class BitSetIterator (Code) | | An iterator to iterate over set bits in an OpenBitSet.
This is faster than nextSetBit() for iterating over the complete set of bits,
especially when the density of the bits set is high.
author: yonik version: $Id$ |
Field Summary | |
final protected static int[] | bitlist |
Method Summary | |
public int | next() | public int | next(int fromIndex) |
bitlist | final protected static int[] bitlist(Code) | | |
BitSetIterator | public BitSetIterator(long[] bits, int numWords)(Code) | | |
next | public int next()(Code) | | alternate shift implementations
// 32 bit shifts, but a long shift needed at the end
private void shift2() {
int y = (int)word;
if (y==0) {wordShift +=32; y = (int)(word >>>32); }
if ((y & 0x0000FFFF) == 0) { wordShift +=16; y>>>=16; }
if ((y & 0x000000FF) == 0) { wordShift +=8; y>>>=8; }
indexArray = bitlist[y & 0xff];
word >>>= (wordShift +1);
}
private void shift3() {
int lower = (int)word;
int lowByte = lower & 0xff;
if (lowByte != 0) {
indexArray=bitlist[lowByte];
return;
}
shift();
}
|
next | public int next(int fromIndex)(Code) | | |
|
|