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

如何在Java中删除数组元素 附已实现添加功能的现有代码

Java数组元素删除实现方案

你现有代码中使用ArrayList动态集合存储元素,比原生固定长度数组实现删除操作简便很多,直接调用ArrayList自带的删除方法即可,不需要手动操作数组偏移。具体修改步骤如下:

1 调整集合作用域

你目前把List<String> list定义在添加功能的分支内,删除、修改分支无法访问同一个集合,需要把集合定义提到管理员登录成功的位置,让所有管理员操作共享同一个图书列表:

if(pass.equals("best")) {
    System.out.println("Welcome Admin. Which option would you like to choose?");
    System.out.println("1. Add");
    System.out.println("2. Delete");
    System.out.println("3. Modify");
    // 把集合定义移到这里,所有管理功能共用同一个列表
    List<String> list = new ArrayList<String>();
    int choice = in.nextInt();
    in.nextLine();

2 补充删除分支逻辑

在choice == 2的分支中添加删除逻辑,支持按元素名称或者下标删除:

} else if (choice == 2) {
    if (list.isEmpty()) {
        System.out.println("当前列表为空,无元素可删除");
        return;
    }
    System.out.println("当前列表内容:" + list);
    System.out.println("请输入要删除的图书名称:");
    String delName = in.nextLine();
    // 按元素值删除,返回布尔值判断是否删除成功
    boolean isDel = list.remove(delName);
    if (isDel) {
        System.out.println("删除成功,当前列表:" + list);
        // 同步更新数组
        String[] arr = list.toArray(new String[0]);
        System.out.println("对应数组内容:" + Arrays.toString(arr));
    } else {
        System.out.println("未找到对应图书,删除失败");
    }
}

3 现有代码优化提示

  • 你之前在添加功能分支内直接调用in.close()关闭输入流,如果后续操作删除、修改功能会触发流关闭异常,需要把in.close()移动到main方法的最后一行
  • 如果需要用原生Java数组实现删除(不借助ArrayList),可以按以下步骤操作:
    • 遍历数组找到要删除元素的下标
    • 创建长度为原数组长度-1的新数组
    • 把原数组中除了目标下标之外的元素全部复制到新数组
    • 把新数组赋值给原数组变量即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 07:54:03