Вот это НЕ проходит:
(кажется, по этим 2м пунктам:
1. Круговой итератор должен после последнего элемента переходить на первый и так далее.
2. Метод remove без параметров должен удалять текущий элемент.)
public class RoundIterator implements Iterator<T>{
ListIterator<T> it = Solution.super.listIterator();
@Override
public boolean hasNext() {
if(!it.hasNext()){
it.previous();
it.previous();
it.previous();
}
return it.hasNext();
}
@Override
public T next() {
return it.next();
}
@Override
public void remove() {
it.remove();
}
}
А это, йбтвмть, ПРОХОДИТ:
public class RoundIterator implements Iterator<T>{
ListIterator<T> it = Solution.super.listIterator();
@Override
public boolean hasNext() {
if(!it.hasNext()) it = Solution.super.listIterator();
return it.hasNext();
}
@Override
public T next() {
return it.next();
}
@Override
public void remove() {
it.remove();
}
}
Вывод и там и там:
1 2 3 1 2 3 1 2 3 1