I got a weird problem. I thought this would cost me few minutes, but I am struggling for few hours now... Here is what I got:
for (int i = 0; i < size; i++){
if (data.get(i).getCaption().contains("_Hardi")){
data.remove(i);
}
}
The data
is the ArrayList.
In the ArrayList I got some strings (total 14 or so), and 9 of them, got the name _Hardi in it.
And with the code above I want to remove them.
If I replace data.remove(i);
with a System.out.println
then it prints out something 9 times, what is good, because _Hardi is in the ArrayList 9 times.
But when I use data.remove(i);
then it doesn t remove all 9, but only a few.
I did some tests and I also saw this:
When I rename the Strings to: Hardi1 Hardi2 Hardi3 Hardi4 Hardi5 Hardi6
Then it removes only the on-even numbers (1, 3, 5 and so on). He is skipping 1 all the time, but can t figure out why.
如何修补呢 或者换个方法除掉它们?