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(); } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。