程序的参数存储在aa[0]
其中是一个数组,因为它aa
是一个数组数组。
所以程序只是真正地迭代了main
方法的参数。它打印1, 2, 3
(它不关心aa[1]
)。
int x;
String aa[][]= new String[2][2]; // create an matrix of size 2x2
aa[0]=a; // store the program arguments into the first row of aa
x=aa[0].length; // store the length of aa[0] which is the same as a
for(int y=0;y<x;y++) // iterate over aa[0] which is the same as a
System.out.print(" "+aa[0][y]);
在功能上与:
for (int i = 0; i < a.length; ++i)
System.out.print(" " + a[i]);
// or even
for (String str: a)
System.out.print(" " + str);
编辑
正如有人说已经删除了他的答案(你不应该,我在你删除它时赞成它),java多维数组是锯齿状数组,这意味着多维数组不必是相同的尺寸,您可以让第 1 行和第 2 行有 2 种不同的尺寸。因此,这意味着声明 aString[2][2]
并不意味着当您重新分配一行时,该行只需要限制为两列。
String[][] ma = new String[3][2];
ma[0] = new String[] {"a", "b"};
ma[1] = new String[] {"a", "b", "c", "d"}; // valid
String[] foo = new String {"1", "3", "33", "e", "ff", "eee"};
ma[2] = foo; // valid also