我为有限的标题道歉,但我不知道如何完全描述这个问题。我有一个for循环遍历包含一个对象的arrayList。其中一种对象方法是在不同时间点设置的布尔值。 for循环的要点是通过arrayList并将每个包含布尔值的项目移除为false。For Array on ArrayList异常
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异常。有任何想法吗?另外,这是做我想做的最好的方法吗?
我怎么会去向后循环?对不起...... – ryandlf