调整数组大小,同时在 Java 中保留当前元素?

2022-08-31 13:45:37

我已经搜索了一种在Java中调整数组大小的方法,但是我找不到在保留当前元素的同时调整数组大小的方法。

我发现了像 这样的示例代码,但这会删除之前存储的元素。int[] newImage = new int[newWidth];

我的代码基本上会这样做:每当添加新元素时,数组都会放大1。我认为这可以通过动态编程来完成,但我不知道如何实现它。


答案 1

您无法在 Java 中调整数组的大小。您需要:

  1. 创建一个所需大小的新数组,并使用java.lang.System.arraycopy(...)将内容从原始数组复制到新数组;

  2. 使用 java.util.ArrayList<T> 类,当您需要使数组变大时,该类会为您执行此操作。它很好地概括了您在问题中描述的内容。

  3. 使用java.util.Arrays.copyOf(...)方法,它返回一个更大的数组,其中包含原始数组的内容。


答案 2

不好,但工作:

    int[] a = {1, 2, 3};
    // make a one bigger
    a = Arrays.copyOf(a, a.length + 1);
    for (int i : a)
        System.out.println(i);

如前所述,使用ArrayList