List删除符合条件项
今天写一段代码时遇到了点小问题,遍历某个List,当符合条件时删除该项。第一种写法报错,第二种写法只删了一半,第三种写法正确。我记得以前看过,说是第一种写法是指针性质的,不能这样删除。希望有人详细说一下。第二种方法我的理解是:当删除了当前项后,下一项会向前移,下标变为当前项,所以下一项不会做判断。
求人指点或探讨。谢谢!
1.
List<Detail> mqList=bean.getMqList();for(Detail d:mqList){ if(符合某条件){ mqList.remove(d);}}List<Detail> mqList=bean.getMqList();for(int i=0;i<mqList.size();i++){ if(符合某条件){ mqList.remove(i);}}List<Detail> mqList=bean.getMqList();Iterator i=mqList.iterator();while(i.hasNext()){ if(符合某条件){ i.remove();}}