哪个要在2D阵列中首先打印?

时间:2015-10-09 22:57:18

标签: arrays

有人告诉我,当你有一个打印数组的代码时,有一个约定,有一个值必须先于另一个,例如:

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这样的答案,但它们并没有解决我的疑问......

PS:我不是要问Java,而是关于C#,C,C ++,Javascript等。

2 个答案:

答案 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]

以行主顺序索引到数组也具有性能优势。通过顺序访问内存,可以最大限度地减少缓存未命中。