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

最终执行结果为:

相关推荐
2601_962106646 分钟前
HashMap入门|工号-姓名键值存储、两种遍历方式、根据key/value查
java
杨凯凡38 分钟前
Spring Framework 7 API 版本管理实战:请求头路由、兼容迁移与废弃策略
java·rest api·springframework·spring boot 4·api版本管理
T_Wizard1 小时前
同一个问题写了 4 遍:官方 SDK / HTTP / Spring AI / LangChain4j,到底该选哪个
java·ai编程
hai_android1 小时前
AudioTrack 深度解析:从原理到实战
android·java·kotlin
斯维赤1 小时前
限流、熔断、降级,你真的分得清吗?
java·后端·架构
aiks_yuan4 小时前
Java CPU 100% 怎么排查:JDK 11 起 jstack 自带线程 CPU 时间,不用再 top -H 换算十六进制(JDK 8、11、17 实测)
java
Flynn Liang6 小时前
AiServices 源码级拆解:一个接口如何变成 RAG Agent
java·langchain·源码分析·rag·langchain4j·aiservices
Flynn Liang6 小时前
LangChain4j 1.23 架构全景:Java 大模型应用的 6 层抽象
java·langchain·大模型·rag·ai agent·langchain4j
聪明的笨猪猪6 小时前
实际工程问题:AI生成Redis分布式锁的原子性缺陷导致库存超卖
java·经验分享·面试·ai编程
软件技术NINI7 小时前
基于SpringBoot和Vue的新能源汽车销售推荐系统
java·vue.js·spring boot·后端·汽车·毕业设计·毕设