Java 数组可通过创建一个大小更大的新数组并复制现有数组元素来扩容,步骤包括:创建一个新数组,大小比现有数组大。使用 system.arraycopy() 方法将现有数组元素复制到新数组中。将原数组变量指向新数组。
如何为 Java 数组扩容
Java 数组是一种固定大小的数据结构,一旦创建,其大小就无法更改。然而,可以通过创建一个新数组并复制现有数组中的元素来实现数组扩容。
步骤:
- 创建新数组:创建一个大小比现有数组更大的新数组。
-
复制元素:使用 System.arraycopy() 方法将现有数组中的元素复制到新数组中。
立即学习“Java免费学习笔记(深入)”;
int[] oldArray = {1, 2, 3}; int[] newArray = new int[oldArray.length + 5]; System.arraycopy(oldArray, 0, newArray, 0, oldArray.length);
-
将原数组指向新数组:将原数组变量指向新数组。
oldArray = newArray;
示例:
假设我们有一个长度为 3 的数组 oldArray,包含元素 [1, 2, 3],并且我们想将它扩容到长度为 8。
// 创建新数组 int[] newArray = new int[8]; // 复制元素 System.arraycopy(oldArray, 0, newArray, 0, oldArray.length); // 将原数组指向新数组 oldArray = newArray; // 添加新元素 oldArray[3] = 4; oldArray[4] = 5; oldArray[5] = 6; oldArray[6] = 7;
现在,oldArray 的长度为 8,元素为 [1, 2, 3, 4, 5, 6, 7]。
注意:
- System.arraycopy() 方法将从现有数组中复制指定数量的元素到新数组中。
- 新数组的大小必须大于或等于现有数组的大小。
- 如果新数组的大小小于现有数组的大小,则不会复制所有元素。