为什么我们需要迭代2d数组中列的行长度

时间:2014-12-20 13:13:01

标签: java arrays

我正在研究多维数组基础知识,我遇到的第一个疑问是在列循环中它的长度为什么我需要通过行长度而不仅仅是数组。

这是我正在谈论的循环和程序。如果我在列循环中使用简单的数组长度的东西会发生什么。我通过运行程序检查了自己,但没有得到正确的答案。我知道这听起来可能是一个非常基本的问题,但我是初学者,如果有人可以帮我保释,那就太棒了。

public class multiarray {
    public static void main(String args[]) {
        int a[][] = {
            {
                56, 78, 967, 7878
            }, {
                4774, 5757, 78, 98
            }
        };
        for (int i = 0; i < a.length; i++) {
            for (int j = 0; j < a[i].length; j++) {
                System.out.println(a[i][j] + "\t");
            }
            System.out.println();
        }
    }
}

2 个答案:

答案 0 :(得分:0)

您的2D阵列如下所示:

       col 0   col 1   col 2   col 3
row 0: 56,     78,     967,    7878
row 1: 4774,   5757,   78,     98

尺寸 2x4 (2行,4列)。如果您使用a.length(= 2)而不是a[i].length(= 4),要访问值,您的循环将错过最后两列,因为数字行数与列数不同。

如果你有&#34;二次&#34;你可以对{em>行和使用a.length。数组如2x2或4x4。

答案 1 :(得分:0)

您需要使用两种不同长度的测量,因为有两种不同的长度。你的数组实际上是一个2x4数字网格:

56   78   967 7878
4774 5757 78  98

如果你在谈论行,你只有两个(索引0和1)。要遍历所有这些,您应该使用数组的长度。这就是你的外循环的工作方式。要访问每个内部元素,您需要遍历行长度。要找出行的大小,您需要获取内部数组的长度。这就是你内循环的作用。