java中使用List<String>集合,然后我remove(0)了第一个元素后,为什么下次读到的不是下一个元素

2025-04-08 11:43:36
推荐回答(1个)
回答1:

因为你删除了元素,但是未改变迭代的下标,这样当迭代到最后一个的时候就会抛异常咯。

可以对上面的程序进行如下改进:
for(int i = 0 , len= list.size();i
if(list.get(i)==XXX){

list.remove(i);
--len;//减少一个
}

}
List接口内部实现了Iterator接口,提供开发者一个iterator()得到当前list对象的一个iterator对象。(一般都用这种)