考虑:

int[][] multD = new int[5][];
multD[0] = new int[10];

这就是创建5行10列的二维数组的方法吗?

我在网上看到了这段代码,但语法没有意义。


当前回答

在Java中,二维数组可以声明为与一维数组相同。在一维数组中,你可以这样写

  int array[] = new int[5];

其中int是一个数据类型,array[]是一个数组声明,new array是一个数组,它的对象有五个索引。

这样,就可以像下面这样编写一个二维数组。

  int array[][];
  array = new int[3][4];

这里数组是int数据类型。我首先声明了该类型的一维数组,然后创建了一个3行4列的数组。

在代码中

int[][] multD = new int[5][];
multD[0] = new int[10];

意味着您已经创建了一个二维数组,有5行。在 第一行有10列。在Java中,您可以根据需要为每一行选择列大小。

其他回答

创建5行10列的二维数组最常见的习惯用法是:

int[][] multD = new int[5][10];

或者,你也可以使用下面的代码,它更类似于你所拥有的,尽管你需要显式地初始化每一行:

int[][] multD = new int[5][];
for (int i = 0; i < 5; i++) {
  multD[i] = new int[10];
}

也可以用以下方式声明它。这不是什么好设计,但很管用。

int[] twoDimIntArray[] = new int[5][10];
int [][] twoDim = new int [5][5];

int a = (twoDim.length);//5
int b = (twoDim[0].length);//5

for(int i = 0; i < a; i++){ // 1 2 3 4 5
    for(int j = 0; j <b; j++) { // 1 2 3 4 5
        int x = (i+1)*(j+1);
        twoDim[i][j] = x;
        if (x<10) {
            System.out.print(" " + x + " ");
        } else {
            System.out.print(x + " ");
        }
    }//end of for J
    System.out.println();
}//end of for i

这些类型的数组在Java中被称为锯齿数组:

int[][] multD = new int[3][];
multD[0] = new int[3];
multD[1] = new int[2];
multD[2] = new int[5];

在这个场景中,数组的每一行都包含不同数量的列。在上面的例子中,第一行包含三列,第二行包含两列,第三行包含五列。你可以在编译时初始化这个数组,如下所示:

 int[][] multD = {{2, 4, 1}, {6, 8}, {7, 3, 6, 5, 1}};

你可以很容易地迭代数组中的所有元素:

for (int i = 0; i<multD.length; i++) {
    for (int j = 0; j<multD[i].length; j++) {
        System.out.print(multD[i][j] + "\t");
    }
    System.out.println();
}

试试这个方法:

int a[][] = {{1,2}, {3,4}};

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