App*_*sei 424 java multidimensional-array
考虑:
int[][] multD = new int[5][];
multD[0] = new int[10];
Run Code Online (Sandbox Code Playgroud)
这是你如何创建一个包含5行和10列的二维数组?
我在网上看到了这段代码,但语法没有意义.
old*_*inb 790
请尝试以下方法:
int[][] multi = new int[5][10];
Run Code Online (Sandbox Code Playgroud)
...这是这样的简写:
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];
Run Code Online (Sandbox Code Playgroud)
请注意,每个元素都将被初始化为默认值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 }
};
Run Code Online (Sandbox Code Playgroud)
小智 75
我们可以声明一个二维数组,并在声明时直接存储元素:
int marks[][]={{50,60,55,67,70},{62,65,70,70,81},{72,66,77,80,69}};
Run Code Online (Sandbox Code Playgroud)
这里int表示存储在数组中的整数类型元素,数组名称是'marks'.int是"{"和"}"括号内表示的所有元素的数据类型,因为数组是具有相同数据类型的元素的集合.
回到上面写的声明:每行元素都应该写在花括号内.每行中的行和元素应以逗号分隔.
现在观察一下这句话:你可以得到3行5列,所以JVM创建3*5 = 15块内存.这些块可以单独称为:
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]
Run Code Online (Sandbox Code Playgroud)
注意:
如果要存储n个元素,则数组索引从零开始并以n-1结束.另一种创建二维数组的方法是首先声明数组,然后使用new运算符为它分配内存.
int marks[][]; // declare marks array
marks = new int[3][5]; // allocate memory for storing 15 elements
Run Code Online (Sandbox Code Playgroud)
通过结合以上两点我们可以写:
int marks[][] = new int[3][5];
Run Code Online (Sandbox Code Playgroud)
Vic*_*jee 50
您可以按照其他人提到的方式创建它们.还有一点要补充:你甚至可以为每一行创建一个倾斜的二维数组,不一定具有相同数量的collumns,如下所示:
int array[][] = new int[3][];
array[0] = new int[3];
array[1] = new int[2];
array[2] = new int[5];
Run Code Online (Sandbox Code Playgroud)
Joã*_*lva 30
创建具有5行和10列的二维数组的最常见习语是:
int[][] multD = new int[5][10];
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用以下内容,它与您拥有的内容更相似,但您需要显式初始化每一行:
int[][] multD = new int[5][];
for (int i = 0; i < 5; i++) {
multD[i] = new int[10];
}
Run Code Online (Sandbox Code Playgroud)
cto*_*mek 11
也可以通过以下方式声明它.这不是好设计,但它有效.
int[] twoDimIntArray[] = new int[5][10];
Run Code Online (Sandbox Code Playgroud)
尝试:
int[][] multD = new int[5][10];
Run Code Online (Sandbox Code Playgroud)
请注意,在您的代码中,只有2D数组的第一行被初始化为0.第2行到第5行甚至不存在.如果你试图打印它们,你会得到null它们的每个人.
小智 8
在Java中,二维数组可以声明为与一维数组相同.在一维数组中,你可以像写一样
int array[] = new int[5];
Run Code Online (Sandbox Code Playgroud)
其中int是数据类型,array []是一个数组声明,new array是一个包含五个索引的对象的数组.
像这样,您可以编写如下的二维数组.
int array[][];
array = new int[3][4];
Run Code Online (Sandbox Code Playgroud)
这array是一个int数据类型.我首先在这些类型的一维数组上声明,然后创建一个3行和4列数组.
在你的代码中
int[][] multD = new int[5][];
multD[0] = new int[10];
Run Code Online (Sandbox Code Playgroud)
意味着您已经创建了一个包含五行的二维数组.在第一行中有10列.在Java中,您可以根据需要为每行选择列大小.
小智 8
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
Run Code Online (Sandbox Code Playgroud)
小智 6
int rows = 5;
int cols = 10;
int[] multD = new int[rows * cols];
for (int r = 0; r < rows; r++)
{
for (int c = 0; c < cols; c++)
{
int index = r * cols + c;
multD[index] = index * 2;
}
}
Run Code Online (Sandbox Code Playgroud)
请享用!
| 归档时间: |
|
| 查看次数: |
1544721 次 |
| 最近记录: |