Löschen Sie Daten aus ArrayList mit einer For-Schleife
Ich habe ein komisches Problem. Ich dachte, das würde mich ein paar Minuten kosten, aber ich habe jetzt ein paar Stunden zu kämpfen ... Folgendes habe ich:
for (int i = 0; i < size; i++){
if (data.get(i).getCaption().contains("_Hardi")){
data.remove(i);
}
}
Dasdata
ist derArrayList.
In der ArrayList habe ich einige Strings (insgesamt 14 oder so) und 9 von ihnen haben den Namen _Hardi darin.
Und mit dem obigen Code möchte ich sie entfernen. Wenn ichreplace data.remove(i);
mit einerSystem.out.println
dann gibt es 9 mal etwas aus, was gut ist, weil _Hardi 9 mal in der ArrayList ist.
Aber wenn ich benutzedata.remove(i);
dann werden nicht alle 9 entfernt, sondern nur einige. Ich habe einige Tests gemacht und auch folgendes gesehen:
Wenn ich die Saiten umbenenne in: Hardi1 Hardi2 Hardi3 Hardi4 Hardi5 Hardi6
Dann werden nur die geraden Zahlen (1, 3, 5 usw.) entfernt. Er überspringt die ganze Zeit 1, kann aber nicht herausfinden warum.
Wie kann ich das beheben? Oder vielleicht eine andere Möglichkeit, sie zu entfernen?