Я прошу прощения за ограниченное название, но я не знаю, как точно описать эту проблему. У меня есть цикл for, который проходит через arrayList, содержащий объект. Одним из методов объектов является логическое значение, которое устанавливается в другой момент времени. Смысл цикла for состоит в том, чтобы пройти через arrayList и удалить каждый элемент, содержащий логическое значение, как false.
if(!arrayList.isEmpty()){
int len = arrayList.size();
for(int i=0; i<len; i++){
if(!arrayList.get(i).isStartTimer()){
arrayList.remove(i);
}
}
}
Цикл for всегда оставляет слишком много объектов в массиве. Это связано с тем, что каждый раз при цикле цикла for len падает на единицу из-за удаленного элемента в массиве, а последний объект отменяет цикл for до того, как удаляет объект. Я понимаю проблему, но не могу понять, как ее исправить. Я пытался сделать что-то вроде len + 1, но он выдает исключение indexOutOfBounds, когда я что-то с ним делаю. Есть идеи? Кроме того, это лучший способ сделать то, что я пытаюсь сделать?