java 数组如何扩容
Java 数组扩容方法
Java 中的数组是固定长度的,无法直接扩容。但可以通过以下方法实现类似扩容的效果:
创建新数组并复制元素
使用 System.arraycopy() 或 Arrays.copyOf() 方法将原数组内容复制到更大的新数组中。

int[] originalArray = {1, 2, 3};
int[] newArray = new int[originalArray.length * 2];
System.arraycopy(originalArray, 0, newArray, 0, originalArray.length);
或者更简洁的方式:

int[] originalArray = {1, 2, 3};
int[] newArray = Arrays.copyOf(originalArray, originalArray.length * 2);
使用 ArrayList
ArrayList 内部自动处理扩容问题,适合需要频繁扩容的场景。
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
// 无需手动扩容,会自动增长
手动实现扩容逻辑
可以封装一个工具方法来处理数组扩容:
public static <T> T[] expandArray(T[] array, int newSize) {
return Arrays.copyOf(array, newSize);
}
注意事项
- 数组扩容会创建新数组并复制元素,有一定性能开销
- 频繁扩容应考虑使用 ArrayList 等集合类
- 扩容倍数通常为 1.5-2 倍,避免频繁扩容






