考虑一下。
int[][] multD = new int[5][];
multD[0] = new int[10];
你是这样创建一个5行10列的二维数组的吗?
我在网上看到这段代码,但语法上没有意义。
试试以下方法。
int[][] multi = new int[5][10];
......这是这样的一个简称。
int[][] multi = new int[5][];
multi[0] = new int[10];
multi[1] = new int[10];
multi[2] = new int[10];
multi[3] = new int[10];
multi[4] = new int[10];
注意,每个元素都将被初始化为 "int "的默认值,即 "0",所以上述内容也等同于。
int[][] multi = new int[][]{
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
};
我们可以声明一个二维数组,并在声明时直接存储元素为。
int marks[][]={{50,60,55,67,70},{62,65,70,70,81},{72,66,77,80,69}};
这里int代表存储到数组中的整数类型元素,数组名称为'marks'。 int是"{".和"}"里面表示的所有元素的数据类型。 和"}".内的所有元素的数据类型。 大括号,因为数组是具有相同数据类型的元素的集合。
再来看看我们上面写的语句。 每一行元素都应该写在大括号里。 每行和每行中的元素应该用逗号分开。
现在观察这条语句。 你可以得到有3行5列,所以JVM创建了3*5=15个内存块。 这些块可以单独称为ta为。
marks[0][0] marks[0][1] marks[0][2] marks[0][3] marks[0][4]
marks[1][0] marks[1][1] marks[1][2] marks[1][3] marks[1][4]
marks[2][0] marks[2][1] marks[2][2] marks[2][3] marks[2][4]
<br>。 注意:如果你想存储n个元素,那么数组索引从0开始,以n-1结束。 如果你想存储n个元素,那么数组索引从0开始,在n-1结束。 另一种创建二维数组的方法是先声明数组,然后使用new操作符为其分配内存。
int marks[][]; // declare marks array
marks = new int[3][5]; // allocate memory for storing 15 elements
结合以上两点,我们可以写出。
int marks[][] = new int[3][5];
你可以用别人提到的方法来创建它们。 还有一点需要补充。 你甚至可以创建一个倾斜的二维数组,每行的列数不一定相同,就像这样。
int array[][] = new int[3][];
array[0] = new int[3];
array[1] = new int[2];
array[2] = new int[5];
试试吧。
int[][] multD = new int[5][10];
注意,在你的代码中,只有二维数组的第一行被初始化为0。 第二至第五行甚至不存在。如果你试图打印它们,你会得到 "null "的结果。
在Java中,二维数组的声明可以和一维数组一样。 在一维数组中,你可以像这样写道
int array[] = new int[5];
其中int是数据类型,array[]是数组声明,new array
是一个数组,其对象有五个索引。
像这样,你可以把一个二维数组写成下面的样子。
int array[][];
array = new int[3][4];
这里array
是一个int数据类型。
我首先在该类型的一维数组上声明,然后创建一个3行4列的数组。
在你的代码中
int[][] multD = new int[5][];
multD[0] = new int[10];
意味着您创建了一个有五行的二维数组。 在 第一行有10列。 在Java中,你可以根据自己的需要为每一行选择列的大小。
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
试试这个方法。
int a[][] = {{1,2}, {3,4}};
int b[] = {1, 2, 3, 4};
这些类型的数组在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();
}