有三种方法可以增加 Java 数组的长度:复制到新数组:创建新数组,拷贝元素并分配给原数组变量。使用 ArrayList:创建 ArrayList,添加元素并转换为数组。使用 System.arraycopy():直接在现有数组中扩展空间。
如何增加 Java 数组的长度
Java 数组是一个固定长度的数据结构,这意味着在创建后无法更改其大小。如果需要增加数组的长度,有以下几种方法:
1. 复制到新数组:
- 创建一个比现有数组更大的新数组。
- 将现有数组中的元素复制到新数组。
- 将新数组分配给原数组变量。
int[] oldArray = {1, 2, 3, 4, 5};
int[] newArray = new int[oldArray.length + 2];
System.arraycopy(oldArray, 0, newArray, 0, oldArray.length);
oldArray = newArray;2. 使用 ArrayList:
- 创建一个 ArrayList,它是可变长度的列表。
- 将原有数组中的元素添加到 ArrayList 中。
- 将 ArrayList 转换为一个数组,并分配给原数组变量。
import java.util.ArrayList;
int[] oldArray = {1, 2, 3, 4, 5};
ArrayList list = new ArrayList<>(oldArray.length + 2);
for (int i : oldArray) {
list.add(i);
}
oldArray = list.stream().mapToInt(i -> i).toArray(); 3. 使用 System.arraycopy():
- 该方法允许在不创建新数组的情况下将数组的一部分复制到另一个数组。
- 创建一个大小合适的目标数组。
- 使用 System.arraycopy() 方法将原有数组中的元素复制到目标数组。
- 覆盖原有数组引用。
int[] oldArray = {1, 2, 3, 4, 5};
int[] targetArray = new int[oldArray.length + 2];
System.arraycopy(oldArray, 0, targetArray, 0, oldArray.length);
oldArray = targetArray;在选择方法时,应考虑性能、代码简洁性和内存要求。复制到新数组的方法性能最差,但代码最简洁。使用 ArrayList 方法性能较好,但代码可能更冗长。System.arraycopy() 方法性能最好,但需要仔细处理数组引用。









