int arr[][] = new int[2][];
我是Java的初学者,不明白为什么在Java中初始化一个多维数组时这是有效的。我尝试使用以下方法打印一个多维数组:
System.out.println(Arrays.toString(arr));
我看不到值;相反,它打印出来的是对象地址。
int arr[][] = new int[2][];
我是Java的初学者,不明白为什么在Java中初始化一个多维数组时这是有效的。我尝试使用以下方法打印一个多维数组:
System.out.println(Arrays.toString(arr));
我看不到值;相反,它打印出来的是对象地址。
int arr[][] = new int[2][];
创建一个由两个一维数组组成的数组,其中每个数组的长度可以是任意的。对于多维数组初始化,只需要指定第一个维度即可。
如果要打印多维数组的元素,需要使用Arrays.deepToString
方法。
System.out.println(Arrays.deepToString(arr));
int[][]
是一个数组的数组。所以int[x]
本身就是一个数组。如果你声明int[2][]
,你可以在该数组中有多达2个数组,但你不需要指定内部数组的大小。
这也是为什么Arrays#toString()
不起作用的原因。因为你只是对内部数组进行#toString
。
int arr[][] = new int[2][];
不规则数组是由成员数组大小不同的数组组成的数组。
int[][] arr = new int[2][];
// row 0 gets 5 columns
arr[0] = new int[5];
// row 1 gets 11 columns
arr[1] = new int[11];
创建数组只需传递行数,因为列数可以是可变的。
如何遍历不规则数组?
int a[][] = new int[2][];
a[0] = new int[2];
a[1] = new int[1];
a[0][0] = 1;
a[0][1] = 2;
a[1][0] = 3;
for(int i[]: a) {
for(int j: i) {
System.out.println(j);
}
}