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?