What\'s the shortest way to get an Iterator over a range of Integers in Java? In other words, implement the following:
/**
* Returns an Iterator over the in
This implementation does not have a memory footprint.
/**
* @param begin inclusive
* @param end exclusive
* @return list of integers from begin to end
*/
public static List range(final int begin, final int end) {
return new AbstractList() {
@Override
public Integer get(int index) {
return begin + index;
}
@Override
public int size() {
return end - begin;
}
};
}
In Java 8 you can simply say:
IntStream.range(begin, end).iterator() // returns PrimitiveIterator.OfInt
or if you need the boxed version:
IntStream.range(begin, end).boxed().iterator() // returns Iterator