有人告诉我,当你有一个打印数组的代码时,有一个约定,有一个值必须先于另一个,例如:
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; column++)
System.out.print("" + array[i][j]);}
首先是i
还是首先需要j
?我找到像this one这样的答案,但它们并没有解决我的疑问......
答案 0 :(得分:0)
for (int i = 0; i < array.length; i++) {
表示i
充当array
元素的索引(元素恰好是子数组)。
for (int j = 0; j < array[i].length; column++)
表示j
充当array[i]
元素(array
的子数组)的索引。
是的,i
需要在j
之前。
答案 1 :(得分:0)
按照惯例,惯例是按顺序执行:
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; column++)
System.out.print("" + array[i][j]);}
此处,i
位于循环中的j
之前,而array
也会i
之前的j
索引。
这是自然顺序,如代码中所写。它也是存储元素以大多数语言(Java,C#,C,C ++)存储的顺序。这称为行主顺序,其中同一行中的元素位于连续的内存位置。
对于行主要顺序中的3乘3阵列a[3][3]
,元素存储为:
a[0][0], a[0][1], a[0][2], a[1][0], a[1][1], a[1][2], a[2][0], a[2][1], a[2][2]
以行主顺序索引到数组也具有性能优势。通过顺序访问内存,可以最大限度地减少缓存未命中。