![JAR search and dependency download from the Maven repository](/logo.png)
xdean.jex.extra.collection.sequence.IntSequence Maven / Gradle / Ivy
The newest version!
package xdean.jex.extra.collection.sequence;
import xdean.jex.extra.collection.IntList;
public class IntSequence implements Sequence {
public static IntSequence create(int start, int step) {
return new IntSequence(start, step);
}
private final IntList released;
private final int start, step;
private int next;
private IntSequence(int start, int step) {
this.released = IntList.create();
this.start = start;
this.step = step;
this.next = start;
}
@Override
public boolean hasNext() {
return true;
}
@Override
public Integer next() {
if (released.isEmpty()) {
int ret = next;
next += step;
return ret;
} else {
int ret = released.stream().min().getAsInt();
released.remove(ret);
return ret;
}
}
@Override
public boolean release(Integer e) {
int i = e;
if (i >= start && i < next && (i - start) % step == 0) {
return released.add(i);
}
return false;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy