You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中用ArrayList删除数组元素失败,求错误排查与修正方法

代码错误分析与修复方案

代码中的错误

  • 类名拼写错误:Worksapce 应为 Workspace,Java要求类名与文件名一致,否则可能出现编译失败问题。
  • 硬编码删除索引:方法定义了index参数,但代码里固定删除索引2的元素,完全未使用传入的参数,导致方法无法根据需求动态删除指定位置元素。
  • 空指针异常直接诱因:将静态变量returnarrayList设为null后调用stream()方法,必然抛出NullPointerException,且该静态变量完全冗余,没有存在的必要。
  • 逻辑错误:数组转ArrayList并删除元素后,未使用处理后的ArrayList转换数组返回,反而用null变量执行后续操作,直接导致报错。

修改后的代码

package workspace;
import java.util.*;
import java.util.stream.*;

public class Workspace{ // 修正类名拼写
    static int[] arrayRemover(int[] myArray, int index) {
        // 将数组转成ArrayList
        List<Integer> arrayList = IntStream.of(myArray).boxed().collect(Collectors.toList()); 
        // 判断索引合法性,避免越界异常
        if (index >= 0 && index < arrayList.size()) {
            arrayList.remove(index);
        } else {
            // 索引不合法时返回原数组,也可根据需求抛出异常
            return myArray;
        }
        // 直接将处理后的ArrayList转成int数组返回
        return arrayList.stream().mapToInt(Integer::intValue).toArray(); 
    }

    public static void main(String[] args)  { 
        int myArray[]= {1,2,3,4};
        int index=2;
        myArray = arrayRemover(myArray, index);
        System.out.println(Arrays.toString(myArray)); // 输出结果:[1,2,4]
    }
}

关键修改说明

  • 修正类名拼写,符合Java命名规范。
  • 移除冗余的静态变量returnarrayList,简化方法内逻辑,直接在方法内完成ArrayList的处理与数组转换。
  • 使用传入的index参数删除元素,增加索引合法性判断,避免因无效索引触发IndexOutOfBoundsException。
  • 删除元素后直接将处理后的ArrayList转为int数组返回,逻辑清晰,彻底避免空指针问题。

内容的提问来源于stack exchange,提问作者Amalshanth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 03:01:05