这篇文章主要介绍了Java list利用遍历进行删除操作3种方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Java三种遍历如何进行list的便利删除:
1、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); }
2、增强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); }
3、iterator遍历:(注意要是用迭代器的remove方法,不能使用list的remove方法)
Iterator<String> it = list.iterator(); while(it.hasNext()){ String x = it.next(); if(x.equals("del")){ it.remove(); } }
最好使用Iterator遍历。