问题描述
ArrayList中数据删除漏删
测试代码如下
java
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
for(int i=0;i<10;i++){
list.add(i+1);
}
System.out.println("删除前:list.szie() = "+list.size());
for(int i=0;i<list.size();i++){
System.out.print(" "+list.get(i));
}
for (int i=5;i<list.size();i++){
list.remove(i);
//i--;
}
System.out.println("\n删除下标为5及之后的所有元素后:list.size() = "+list.size());
for(int i=0;i<list.size();i++){
System.out.print(" "+list.get(i));
}
}
解决方案:在使用连续remove(index)方法的时候,删除一个元素以后,将i 减1,可以避免漏删,代码如下
java
for (int i=3;i<list.size();i++){
list.remove(i);
i--;
}