简单的Java数组语法,我感到困惑

时间:2017-03-17 11:35:25

标签: java arrays

public static void main(String[] args) {


    int[][] b = {{0, 0, 0, 1},
                 {0, 0, 1, 1},
                 {0, 1, 1, 1}};

    int[] u = new int[b.length];
    for (int i = 0; i < u.length; i++) {
        for (int j = 0; j < b[i].length; j++) {
            u[i] = u[i] +b[i][j];

        }
        System.out.println(u[i]);
      }
   }

书面b[i].length;b.length;

之间有何区别?

当我使用b[i].length;运行此代码时,输​​出为1,2,3

使用b.length;运行时会显示输出0,1,2

6 个答案:

答案 0 :(得分:2)

你的数组有2个维度,因此它是一个数组的数组。如果您使用b.length,您将获得存储在b

中的数组量

您的数组可能如下所示:

int[][] b = {{1}, {1,2}, {1,2,3}};

所以b是一个包含3个其他数组的数组。 b.length(在这种情况下)将始终为3.如果使用b [n] .length,则将得到索引为n的数组的长度。在我上面的例子中:b [0] .length将为1,b [1] .length将为2,b [2] .length将为3.

答案 1 :(得分:1)

在您的代码中,您有一个二维数组。

/*This is an array of arrays*/
int[][] b = {
             {0, 0, 0, 1},
             {0, 0, 1, 1},
             {0, 1, 1, 1}
            };

这是一个数组阵列。

b.length将返回主数组中的数组量

b[i].length将返回索引i上一个特定数组中的元素数量

答案 2 :(得分:1)

b.length返回所有行的编号,但行b[i].length;的{​​{1}}返回编号列

答案 3 :(得分:1)

b.length给出数组b的长度为3,因为它有三个元素:b [0]是一个数组{0,0,0,1},b [1]是一个数组{0,0,1,1},最后是b [2],它是一个数组{0,1,1,1}。

b[i].lenght给出了元素b [i]的长度为4.你可以在b [i]中使用长度方法的原因是因为b [i]也是数组(b是一个数组数组,所以b的每个元素都是一个int的数组。

b[i].length将为每个i返回4,因为每个元素b [i]是一个长度为4的数组。但是,请注意b [i]不需要具有相同的长度 例如,如果你有:

int[][] b = {{0, 0, 0, 1},{1, 1}};

然后b.length返回2,b[0].length返回4,b[1].length返回2.

答案 4 :(得分:1)

b.length是矩阵中的行数 b[i].length是第i行

的元素数

答案 5 :(得分:0)

b指的是一个数组数组。

b.length会返回b个元素的数量 - 换句话说,有多少个&#34;嵌套&#34;你拥有的数组。

b[i].length返回b[i]个元素的数量 - 换句话说,b[i]引用的嵌套数组的长度。