如何在java中创建动态二维数组?
2022-09-01 04:21:50
我想动态创建一个二维数组。
我知道列数。但是行数是动态变化的。我尝试了数组列表,但它仅将值存储在单个维度中。我该怎么办?
我想动态创建一个二维数组。
我知道列数。但是行数是动态变化的。我尝试了数组列表,但它仅将值存储在单个维度中。我该怎么办?
由于列数是一个常量,因此可以只使用一个 .List
int[]
import java.util.*;
//...
List<int[]> rowList = new ArrayList<int[]>();
rowList.add(new int[] { 1, 2, 3 });
rowList.add(new int[] { 4, 5, 6 });
rowList.add(new int[] { 7, 8 });
for (int[] row : rowList) {
System.out.println("Row = " + Arrays.toString(row));
} // prints:
// Row = [1, 2, 3]
// Row = [4, 5, 6]
// Row = [7, 8]
System.out.println(rowList.get(1)[1]); // prints "5"
由于它由 a 支持,行数可以动态增长和收缩。每行都有一个 ,这是静态的,但是你说列数是固定的,所以这不是问题。List
int[]
Java中没有多维数组,但是,有数组的数组。
只需创建一个您想要的数组,然后为每个元素创建另一个数组,无论您希望该数组有多大。
int array[][];
array = new int[10][];
array[0] = new int[9];
array[1] = new int[8];
array[2] = new int[7];
array[3] = new int[6];
array[4] = new int[5];
array[5] = new int[4];
array[6] = new int[3];
array[7] = new int[2];
array[8] = new int[1];
array[9] = new int[0];
或者:
List<Integer>[] array;
array = new List<Integer>[10];
// of you can do "new ArrayList<Integer>(the desired size);" for all of the following
array[0] = new ArrayList<Integer>();
array[1] = new ArrayList<Integer>();
array[2] = new ArrayList<Integer>();
array[3] = new ArrayList<Integer>();
array[4] = new ArrayList<Integer>();
array[5] = new ArrayList<Integer>();
array[6] = new ArrayList<Integer>();
array[7] = new ArrayList<Integer>();
array[8] = new ArrayList<Integer>();
array[9] = new ArrayList<Integer>();