Удалить данные из ArrayList с помощью цикла For

У меня странная проблема. Я думал, что это будет стоить мне нескольких минут, но я борюсь за несколько часов ... Вот что я получил:

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

Thedata этоArrayList. В ArrayList у меня есть несколько строк (всего около 14), и в 9 из них есть имя _Hardi.

И с кодом выше, я хочу удалить их. Если яreplace data.remove(i); сSystem.out.println тогда он печатает что-то 9 раз, что хорошо, потому что _Hardi входит в ArrayList 9 раз.

Но когда я используюdata.remove(i); тогда не удаляются все 9, а только несколько. Я сделал несколько тестов, и я также видел это:

Когда я переименую строки в: Hardi1 Hardi2 Hardi3 Hardi4 Hardi5 Hardi6

Затем удаляются только четные числа (1, 3, 5 и т. Д.). Он все время пропускает 1, но не может понять, почему.

Как это исправить? Или, может быть, другой способ их удалит

Ответы на вопрос(14)

Ваш ответ на вопрос