Java中遍历list删除特定元素
在项目开发中,我们可能往往需要动态的删除ArrayList中的一些元素。
最容易,最简单也是错误的方法是:
for(int i = 0 , len= list.size();i<len;++i){
if(list.get(i)==XXX){
list.remove(i);
}
}
上面这种方式会抛出如下异常:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
at java.util.ArrayList.RangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at ListDemo.main(ListDemo.java:20)
List接口内部实现了Iterator接口,提供开发者一个iterator()得到当前list对象的一个iterator对象。
以下例子代码实现了对flightleg中dataelement的更新操作。如果有新元素加入add操作,
如果是对旧元素的修改是update操作,如果input中没有此元素,证明需要删除,则进入delete操作。但是注意此时使用了Iterator来遍历
