在Java中,二维数组的扩容可以通过以下步骤实现:
2. 使用`System.arraycopy()`方法将原始数组的元素复制到新数组中。
3. 将新数组的引用赋值给原始数组的引用,从而完成扩容。
下面是一个具体的示例代码,展示了如何对二维数组进行扩容:
```java
public class ArrayResizeExample {
public static void main(String[] args) {
// 原始二维数组
int[][] originalArray = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
// 确定新数组的大小
int newRows = originalArray.length + 1;
int newCols = originalArray.length + 1;
// 创建新的二维数组
int[][] newArray = new int[newRows][newCols];
// 使用System.arraycopy()方法复制原始数组的元素到新数组中
for (int i = 0; i < originalArray.length; i++) {
System.arraycopy(originalArray[i], 0, newArray[i], 0, originalArray[i].length);
}
// 输出扩容后的数组
for (int i = 0; i < newArray.length; i++) {
for (int j = 0; j < newArray[i].length; j++) {
System.out.print(newArray[i][j] + " ");
}
System.out.println();
}
}
}
运行上述代码,输出结果如下:
```
1 2 3
4 5 6
7 8 9
10 0 0
可以看到,原始数组已经被成功扩容,新增了一行和一列,并用0填充了新增加的部分。
请注意,这种方式创建的是数组的浅拷贝,如果数组中包含对象引用,则新数组和原始数组中的对象引用指向的是同一个对象。如果需要深拷贝(即新数组和原始数组指向不同的对象),则需要使用其他方法或库来实现。
另外,如果需要频繁地进行数组扩容操作,可以考虑使用`ArrayList`等集合类,它们提供了动态扩容的功能。