调整数组大小,同时在 Java 中保留当前元素?
我已经搜索了一种在Java中调整数组大小的方法,但是我找不到在保留当前元素的同时调整数组大小的方法。
我发现了像 这样的示例代码,但这会删除之前存储的元素。int[] newImage = new int[newWidth];
我的代码基本上会这样做:每当添加新元素时,数组都会放大1。我认为这可以通过动态编程来完成,但我不知道如何实现它。
我已经搜索了一种在Java中调整数组大小的方法,但是我找不到在保留当前元素的同时调整数组大小的方法。
我发现了像 这样的示例代码,但这会删除之前存储的元素。int[] newImage = new int[newWidth];
我的代码基本上会这样做:每当添加新元素时,数组都会放大1。我认为这可以通过动态编程来完成,但我不知道如何实现它。
您无法在 Java 中调整数组的大小。您需要:
创建一个所需大小的新数组,并使用java.lang.System.arraycopy(...)
将内容从原始数组复制到新数组;
使用 java.util.ArrayList<T>
类,当您需要使数组变大时,该类会为您执行此操作。它很好地概括了您在问题中描述的内容。
使用java.util.Arrays.copyOf(...)
方法,它返回一个更大的数组,其中包含原始数组的内容。
不好,但工作:
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