Witam, mam krótki programik- sprawdzam sobie działanie Kolekcji. I jedna rzecz mnie zdziwiła i nie potrafię jej zrozumieć. ArrayListę wypełniam liczbami od 0 do 10. Następnie definiuję iterator i przechodzę w while iteratorem przez arraylistę. W środku while sprawdzam też czy liczba ta jest równa 3, jeżeli tak to chcę ją usunąć. Problem w tym, że iterator wypisuje mi tylko 5liczb z dziesięciu(co drugą) a winowajcą jest ten if "if(iter.next()==3)". Dlaczego ifie gdy chcę sprawdzić czy jest równy 3 iterator przeskakuje do następnego elementu? Czy dzieje się coś innego?
public static void main(String[] args) {
Random rand=new Random();
List<Integer> integerList= new ArrayList<Integer>();
Iterator<Integer> iter;
for(int i=0; i<10; i++)
integerList.add(rand.nextInt(10));
iter= integerList.iterator();
while(iter.hasNext())
{
System.out.println(iter.next());
if(iter.next()==3)
iter.remove();
}
}