Usuń dane z ArrayList za pomocą pętli For

Mam dziwny problem. Myślałem, że to będzie mnie kosztować kilka minut, ale walczę już od kilku godzin ... Oto co dostałem:

for (int i = 0; i < size; i++){
    if (data.get(i).getCaption().contains("_Hardi")){
        data.remove(i);
    }
}

Thedata jestArrayList. W ArrayList dostałem kilka smyczków (łącznie 14 lub więcej), a 9 z nich otrzymało imię „Hardi”.

Z powyższym kodem chcę je usunąć. Jeśli jareplace data.remove(i); zSystem.out.println następnie wypisuje coś 9 razy, co jest dobre, ponieważ _Hardi jest 9 razy w ArrayList.

Ale kiedy używamdata.remove(i); to nie usuwa wszystkich 9, ale tylko kilka. Zrobiłem kilka testów i zobaczyłem to:

Kiedy zmieniam nazwę struny na: Hardi1 Hardi2 Hardi3 Hardi4 Hardi5 Hardi6

Następnie usuwa tylko liczby parzyste (1, 3, 5 itd.). Cały czas pomija 1, ale nie może zrozumieć dlaczego.

Jak to naprawić? A może inny sposób ich usunięcia?

questionAnswers(14)

yourAnswerToTheQuestion