java中具有空限制的数组操作
有人能帮助我理解这个代码是如何工作的吗java中具有空限制的数组操作,java,arrays,Java,Arrays,有人能帮助我理解这个代码是如何工作的吗 public class strManipulation { public static void main(String[] args) { int a[][] = new int[3][]; a[1] = new int[]{1,2,3}; a[2] = new int[]{4,5}; System.out.print(a[1][1]); } } 它的工作原理和它看起来的
public class strManipulation {
public static void main(String[] args) {
int a[][] = new int[3][];
a[1] = new int[]{1,2,3};
a[2] = new int[]{4,5};
System.out.print(a[1][1]);
}
}
它的工作原理和它看起来的一样
a
是类型int[][]
(一个由int
数组组成的数组),并被分配给一个由3个nullint[]
组成的新数组。然后a[1]
(a
中的第二个int[]
)被分配给包含一些初始数据的3个int
的新数组。然后打印a
中第二个int[]
的第二个int
有关数组的官方语言教程,请参见。您可以这样打印结果:
public class StrManipulation {
public static void main(String[] args) {
int a[][] = new int[3][];
a[1] = new int[]{1,2,3};
a[2] = new int[]{4,5};
for (int m = 0; m < a.length; m++) {
for (int n = 0; a[m] != null && n < a[m].length; n++) {
System.out.println("Row:" + m + "; Column:" + n + "; Value:" + a[m][n]);
}
}
}
}
说明:
1-创建二维数组,并指定有3行
2-保留第一行(索引=0)未定义
3-用3个数字填充第二行(索引=1),即1、2、3
4-用2个数字填充第三行(索引=2),即4,5。将其作为以下二维矩阵
| 0 1 2
_____|_____________________
|
0 | <------NULL----->
|
1 | 1 2 3
|
2 | 4 5
|
| 0 1 2
_____|_____________________
|
0 |
|
1 | 1 2 3
|
2 | 4 5
|
你应该可以在这里的某个地方找到答案:+1,因为它的工作原理与它的工作原理一模一样。
我不相信a[m]!=null
是必需的。@PM 77-1,我之所以保留它,是因为它将引发null指针异常,因为第一行未初始化(行=0),您可以自己确认:-)是的,我错了。我错误地认为只有0长度才能解决这个问题。user2207839-->这就是你问题的答案!简单和直观的帮助。
| 0 1 2
_____|_____________________
|
0 | <------NULL----->
|
1 | 1 2 3
|
2 | 4 5
|