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

如何用Java静态方法删除数组末尾元素,且兼容现有添加方法?

问题解决:静态方法实现数组末尾元素删除

先明确你的核心错误和问题:

  • Java标准库的java.util.Arrays类没有removeElement方法,这是编译报错的直接原因。
  • 你写的del方法是无参的,内部自己创建固定数组,没法复用添加元素后的new_array,完全不符合“在添加后的数组上执行删除”的需求。
  • 代码里del_arrays [-1]的写法有语法错误,数组下标访问不能留空格,不过这是次要问题。

符合需求的修改方案

Java数组长度固定,没法直接删除元素,必须创建新数组来实现“删除末尾元素”的效果,和你写add方法的思路一致。

修改后的完整代码:

public class Arrays {

    public static int[] add(int[] arr, int val) {
        int[] newArray = java.util.Arrays.copyOf(arr, arr.length + 1);
        newArray[arr.length] = val;
        return newArray;
    }

    // 修改del方法:接收要操作的数组作为参数,返回删除末尾元素后的新数组
    public static int[] del(int[] arr) {
        // 避免数组为空时出现长度负数的报错
        if (arr == null || arr.length == 0) {
            return arr;
        }
        // 创建长度减1的新数组,自动截断最后一个元素
        int[] delArray = java.util.Arrays.copyOf(arr, arr.length - 1);
        return delArray;
    }

    public static void main(String[] args) {
        int[] array = { 1, 2, 3 };
        System.out.println(java.util.Arrays.toString(array));
        
        int[] new_array = add(array, 4);
        System.out.println(java.util.Arrays.toString(new_array));
        
        // 在添加后的数组上执行删除操作,并打印结果
        int[] after_del_array = del(new_array);
        System.out.println(java.util.Arrays.toString(after_del_array));
    }
}

代码说明

  1. del方法改为接收int[] arr参数,这样就能传入任何你想操作的数组(包括添加元素后的new_array)。
  2. 增加空数组判断,避免运行时抛出NegativeArraySizeException。
  3. 用java.util.Arrays.copyOf(arr, arr.length - 1)复制原数组的前arr.length-1个元素到新数组,等价于删除末尾元素。
  4. 在main方法中调用del(new_array)并打印结果,满足你的需求。

运行后终端输出:

[1, 2, 3]
[1, 2, 3, 4]
[1, 2, 3]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 15:33:34