遍历list,remove出现问题

来源:互联网 发布:淘宝女装店铺图片 编辑:程序博客网 时间:2024/05/19 04:55

在项目中取到了一个List<people> list集合,想要把其中不合适的去掉,于是写了下面的代码


for(int i=0;i<list.size();i++){

    if("".equals(list.get(i).getPeopleName)){

               list.remove(i);

    }

}


这时候发现,list总是无法正确清理不需要的信息。

其实,list.remove()后,list.size()的值已经减1,被删除元素下的所有元素上移一位。这样在下一次循环的时候,就跳过了被删除元素下的那一位。

想要完整遍历,需要相应的对i进行减1操作


for(int i=0;i<list.size();i++){

    if("".equals(list.get(i).getPeopleName)){

               list.remove(i);

    }

      i--;

}

这样就可以完整遍历list了。