Вроде все работает, тест проходит. Значит удаляет правильно. Почему не принимает?
package com.javarush.task.task37.task3701;
import java.util.*;
/*
Круговой итератор
*/
public class Solution<T> extends ArrayList<T> {
public static void main(String[] args) {
Solution<Integer> list = new Solution<>();
list.add(1);
list.add(2);
list.add(3);
int count = 0;
for (Integer i : list) {
//1 2 3 1 2 3 1 2 3 1
System.out.print(i + " ");
count++;
if (count == 10) {
break;
}
}
System.out.println();
System.out.println();
System.out.println();
Iterator<Integer> iterator = list.iterator();
int co = 0;
while (iterator.hasNext()) {
co++;
if (iterator.next() == 2) {
iterator.remove();
}
if(co == 5)
break;
}
count = 0;
for (Integer i : list) {
//а теперь без двоек
System.out.print(i + " ");
count++;
if (count == 10) {
break;
}
}
}
public class RoundIterator implements Iterator<T> {
Iterator<T> iterator = Solution.super.iterator();
int cursor = 0;
@Override
public boolean hasNext() {
return true;
}
@Override
public T next() {
cursor++;
try{
return iterator.next();
}
catch (Exception e){
cursor = 0;
iterator = Solution.super.iterator();
return iterator.next();
}
}
@Override
public void remove() {
iterator.remove();
}
}
@Override
public Iterator<T> iterator() {
return new RoundIterator();
}
}