Java中如何使用遍历的方式删除list中的数据呢?
下文笔者讲述使用遍历的方式删除list中的数据的方法分享,如下所示
iterator遍历
实现思路:
使用list的remove方法
例:
for循环
for(int i=0;i<list.size();i++){
if(list.get(i).equals("del"))
list.remove(i);
}
应该改为:(倒序操作避免下标问题)
int size = list.size();
for(int i=size-1;i>=0;i--){
if(list.get(i).equals("del"))
list.remove(i);
}
增强for循环(foreach循环)
常见错误:
会抛出ConcurrentModificationException
for(String x:list){
if(x.equals("del"))
list.remove(x);
}
修改为
//cowlist为原list
CopyOnWriteArrayList<Record> list = new CopyOnWriteArrayList<Record>(cowList);
for(String x:list){
if(x.equals("del"))
list.remove(x);
}
iterator遍历
注意要是用迭代器的remove方法
不能使用list的remove方法
Iterator<String> it = list.iterator();
while(it.hasNext()){
String x = it.next();
if(x.equals("del")){
it.remove();
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


