在Java中,二维数组的动态扩容可以通过以下几种方法实现:
使用ArrayList
ArrayList是Java中的一个集合类,它可以动态地调整大小,因此可以用来实现二维数组的动态扩容。
import java.util.ArrayList;public class Main {public static void main(String[] args) {ArrayList> arrayList = new ArrayList<>();arrayList.add(new ArrayList() {{ add(1);add(2);add(3);}});arrayList.add(new ArrayList() {{ add(4);add(5);}});// 添加新元素arrayList.get(0).add(4);arrayList.get(1).add(5);// 打印二维数组for (ArrayListlist : arrayList) { for (int i : list) {System.out.print(i + " ");}System.out.println();}}}
使用System.arraycopy
可以通过创建一个新的二维数组,然后使用`System.arraycopy`方法将原数组的元素复制到新数组中,从而实现扩容。
public class Main {public static void main(String[] args) {int[][] originalArray = {{1, 2, 3}, {4, 5}};int[][] newArray = new int[originalArray.length + 1][originalArray.length + 1];// 复制原始元素到新数组System.arraycopy(originalArray, 0, newArray, 0, originalArray.length);// 添加新元素newArray[originalArray.length][originalArray.length] = 6;// 打印二维数组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();}}}
使用Arrays.copyOf
`Arrays.copyOf`方法可以用来创建一个新的二维数组,并将原数组的元素复制到新数组中。
import java.util.Arrays;public class Main {public static void main(String[] args) {int[][] originalArray = {{1, 2, 3}, {4, 5}};int[][] newArray = Arrays.copyOf(originalArray, originalArray.length + 1);// 添加新元素newArray[originalArray.length] = new int[]{6};// 打印二维数组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();}}}
以上三种方法都可以实现二维数组的动态扩容。选择哪种方法取决于具体的应用场景和个人偏好。需要注意的是,使用`ArrayList`时,扩容操作是自动进行的,而使用`System.arraycopy`和`Arrays.copyOf`时,需要手动进行扩容操作。

