了解Java中的数组索引

Rya*_*man 2 java arrays

我有一个关于Java如何处理数组的简短问题.以下是我的代码:

//import java.util.Arrays;
import static java.lang.System.out;

public class Arrays
{       
    public static void main(String[] args)
    {           
        String [][] multiArray = new String[10][8];

        int k = 1;
        while (k <= 61) {out.print('-'); k++;}
        out.println ();

        for (int i = 0; i < multiArray.length; i++)
        {
            for (int j = 0; j < multiArray[i].length; j++)
            {
                multiArray[i][j] = i + "" + j;
                out.print ("| " + multiArray[i][j] + " ");  
            }
            out.println ("|");
        }           
        k = 1;
        while (k <= 61) {out.print('-'); k++;}
        out.println();          
    }       
}
Run Code Online (Sandbox Code Playgroud)

我知道你必须创建一个双"for"循环来打印出两个维度的值,并且你必须拥有:

    multiArray[i].length
Run Code Online (Sandbox Code Playgroud)

这样它就知道引用第二维的长度.我只是不明白它是如何工作的.

令我困惑的是:在程序的最开始,在我声明我的数组之后,如果我写一个如下的语句:

    system.out.println (multiArray.length);    
Run Code Online (Sandbox Code Playgroud)

它将打印10的值,这是我在第一维中声明的长度.但是,如果我创建一些随机变量,如"int a = 0"或"int idontgetthis = 0",那么我写道:

    system.out.println (multiArray[a].length);
Run Code Online (Sandbox Code Playgroud)

它以某种方式知道打印第二维的长度,8.所以我的问题是,它是如何知道如何做到这一点的?这太痛苦了!!大声笑

Oli*_*rth 5

因为multiArray它实际上是一个数组数组.所以multiArray[a]是对象的引用.该对象本身就是一个数组.该数组具有长度(8),并且length可以使用一个可用于返回该长度的属性.