Код по ссылке
В данном проекте
Создан класс Randoms
, реализующий Iterable<Integer>
, по которому происходит итерирование.
В процессе итерирования мы от него получаем случайные числа в диапазоне значений.
Диапазон задаётся двумя числами - минимальным и максимальным значениями.
Передаются они через параметры конструктора Randoms
.
Таким образом, итератор по объектам нашего класса итерируется по бесконечной последовательности из случайных чисел в заданном интервале.
Бесконечная последовательность обеспечивается за счёт добавления случайных чисел
в заранее созданный в классе Randoms
список ArrayList<Integer> list
в цикле while
в конструкторе класса. Условием цикла выступает генерация случайного числа, равного 100.
Добавление в список числа идёт через метод коллекции add()
,
генерация случайного числа, который заносится в список, через метод nextInt()
класса Random
.
Т.к. мы реализуем интерфейс Iterable
,
то в классе Randoms
идёт переопределение метода iterator
.
В данном методе возвращаем анонимный класс Iterator<Integer>()
,
в котором переопределяем методы hasNext()
и next()
.