Реализуйте класс, представляющий однонаправленный кольцевой список
Класс должен реализовывать интерфейс Iterable. В классе должны быть реализованы методы size(), isEmpty(), get(i), set (i, e), contains(e), addHead(e), addTail(e), removeHead(), iterator().
Примерная схема класса:
public class CircleList<T> implements Iterable<T> {
// Количество элементов в списке
public int size() { … }
// Список пуст?
public boolean isEmpty() { … }
// Элемент списка по номеру
public T get(int i) { … }
// Заменить значение элемента с заданным номером
// Возвращает «старое» значение элемента.
public T set(int i, T elem) { … }
// Добавить новый элемент в начало списка
public void addHead(T elem) { … }
// Добавить новый элемент в конец списка
public void addTail(T elem) { … }
// Удалить элемент из начала списка
// (если список пуст – ничего не делать, вернуть null)
// Возвращает «старое» значение элемента.
public T removeHead() { … }
// Проверить наличие элемента в списке
public boolean contains(T elem) { … }
// Итератор элементов списка
@Override
public Iterator<T> iterator() { … }
}