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

问题描述

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

最终执行结果为:

相关推荐
wangchunting5 分钟前
Jvm-垃圾回收算法
java·jvm·算法
Java面试题总结7 分钟前
新人笔记之模板方法模式
java·笔记·模板方法模式
NGC_66119 分钟前
深入理解 Java 线程池:从原理到实战
java·开发语言·python
人道领域11 分钟前
Day | 10【苍穹外卖:SpringTask 和WebSocket 案例】
java·数据库·后端
白宇横流学长11 分钟前
基于SpringMVC 的景区智能客流预测系统设计与实现
java
1104.北光c°12 分钟前
Leetcode206.反转链表 迭代+递归 【hot100算法个人笔记】【java写法】
java·数据结构·笔记·算法·leetcode·链表·反转链表
MegaDataFlowers13 分钟前
静态/动态代理模式
java·开发语言·代理模式
编程学习00120 分钟前
记一次Java面试
java·面试
计算机学姐23 分钟前
基于SpringBoot+Vue的家政服务预约系统【个性化推荐+数据可视化】
java·vue.js·spring boot·后端·mysql·信息可视化·java-ee
一只大袋鼠23 分钟前
请求转发vs重定向、同源策略与跨域
java·javaweb·同源策略·请求转发·重定向