Java中ArrayList.remove(index)漏删的问题

问题描述

ArrayList中数据删除漏删

测试代码如下

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));
        }
	}

Java中ArrayList.remove(index)漏删的问题_第1张图片

解决方案:在使用连续remove(index)方法的时候,删除一个元素以后,将i 减1,可以避免漏删,代码如下

 for (int i=3;i<list.size();i++){
            list.remove(i);
            i--;
        }

最终执行结果为:

Java中ArrayList.remove(index)漏删的问题_第2张图片

你可能感兴趣的:(java)