public boolean moveToNext() { while (!runningHasNext() && !literalHasNext()) { if (!this.ewahIter.hasNext()) { return false; } setRunningLengthWord(this.ewahIter.next()); } return true; }
@Override public int next() { final int answer; if (runningHasNext()) { answer = this.position++; } else { final int t = this.word & -this.word; answer = this.literalPosition + Integer.bitCount(t - 1); this.word ^= t; } this.hasNext = this.moveToNext(); return answer; }
ClearIntIterator32(EWAHIterator32 ewahIter, int sizeInBits) { this.ewahIter = ewahIter; this.sizeInBits = sizeInBits; this.buffer = ewahIter.buffer(); this.hasNext = this.moveToNext(); }
/** * Iterator over the clear bits. The location of the clear bits is * returned, in increasing order. * * The current bitmap is not modified. * * @return the int iterator */ public IntIterator clearIntIterator() { return new ClearIntIterator32(this.getEWAHIterator(), this.sizeInBits); }
ClearIntIterator32(EWAHIterator32 ewahIter, int sizeInBits) { this.ewahIter = ewahIter; this.sizeInBits = sizeInBits; this.buffer = ewahIter.buffer(); this.hasNext = this.moveToNext(); }
/** * Iterator over the clear bits. The location of the clear bits is * returned, in increasing order. * * The current bitmap is not modified. * * @return the int iterator */ public IntIterator clearIntIterator() { return new ClearIntIterator32(this.getEWAHIterator(), this.sizeInBits); }
public boolean moveToNext() { while (!runningHasNext() && !literalHasNext()) { if (!this.ewahIter.hasNext()) { return false; } setRunningLengthWord(this.ewahIter.next()); } return true; }
@Override public int next() { final int answer; if (runningHasNext()) { answer = this.position++; } else { final int t = this.word & -this.word; answer = this.literalPosition + Integer.bitCount(t - 1); this.word ^= t; } this.hasNext = this.moveToNext(); return answer; }