【问题标题】:How to print a multidimensional array in Java?如何在 Java 中打印多维数组?
【发布时间】:2020-10-25 03:37:42
【问题描述】:
int arr[][] = new int[2][];
我是 Java 的初学者,当我们在 Java 中初始化多维数组时,我不明白为什么这是有效的。我试图打印一个多维数组使用
System.out.println(Arrays.toString(arr));
我看不到值;相反,它打印的是对象的地址。
【问题讨论】:
标签:
java
arrays
multidimensional-array
【解决方案1】:
int arr[][] = new int[2][]; 创建一个由两个一维数组组成的数组,其中每个数组可以有任意长度。多维数组初始化只需要指定第一维。
您需要使用Arrays.deepToString 来打印多维数组的元素。
System.out.println(Arrays.deepToString(arr));
【解决方案2】:
声明是有效的,因为int[][] 是一个数组数组。所以int[x] 本身就是一个数组。如果您声明 int[2][],则该数组内最多可以有 2 个数组,但您不指定内部数组的大小。
这也是Arrays#toString() 不起作用的原因。因为你只是 #toString 内部数组。
【解决方案3】:
了解为什么它可以正常工作
int arr[][] = new int[2][];
我们需要知道什么是Java中的锯齿状数组
Jagged array is array of arrays such that member arrays can be of different sizes
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);
}
}