Class StridingLongIterator
java.lang.Object
com.github.tommyettinger.ds.support.util.StridingLongIterator
- All Implemented Interfaces:
LongIterator,Iterator<Long>
Wraps a LongIterator so that it starts at an offset, skipping that many items, then returning items that match a given
stride, such as every other item, or every tenth item. If the offset is 0, this will try to return the first item and
then any items matching the stride, so if the stride is 2, it will return the first item, skip one item, return the
item after that, skip, return, skip, return, etc.
This has undefined behavior if any items the LongIterator could return are modified during iteration.
You can change the iterator, offset, and stride at once using
You can change the iterator, offset, and stride at once using
set(LongIterator, int, int), and can also just
change the iterator with set(LongIterator).-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanhasNext()longnextLong()Returns the nextlongelement in the iteration.voidremove()NOTE: this does not change the stride or offset, so the same sequence of values will be returned regardless of if some elements are removed with this method.voidset(LongIterator iterator) voidset(LongIterator iterator, int offset, int stride) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.util.Iterator
forEachRemainingMethods inherited from interface com.github.tommyettinger.ds.support.util.LongIterator
forEachRemaining, next
-
Field Details
-
iterator
-
offset
protected int offset -
stride
protected int stride -
index
protected int index -
end
protected boolean end -
available
protected boolean available -
next
protected long next
-
-
Constructor Details
-
StridingLongIterator
public StridingLongIterator() -
StridingLongIterator
-
-
Method Details
-
set
-
set
-
hasNext
public boolean hasNext() -
nextLong
public long nextLong()Description copied from interface:LongIteratorReturns the nextlongelement in the iteration.- Specified by:
nextLongin interfaceLongIterator- Returns:
- the next
longelement in the iteration
-
remove
public void remove()NOTE: this does not change the stride or offset, so the same sequence of values will be returned regardless of if some elements are removed with this method.
-