Я работаю над небольшой библиотекой утилит Java под названием Jools , и она содержит класс Range
, который предоставляет необходимую вам функциональность (есть загружаемый JAR).
Конструкторы являются либо Range(int stop)
, Range(int start, int stop)
или Range(int start, int stop, int step)
(аналогично циклу for), и вы можете либо пройти по нему, который использовал ленивую оценку, либо вы можете использовать его метод toList()
, чтобы явно получить список диапазонов.
for (int i : new Range(10)) {...} // i = 0,1,2,3,4,5,6,7,8,9
for (int i : new Range(4,10)) {...} // i = 4,5,6,7,8,9
for (int i : new Range(0,10,2)) {...} // i = 0,2,4,6,8
Range range = new Range(0,10,2);
range.toList(); // [0,2,4,6,8]