我以前从未这样做过,也找不到答案.这可能不是用于此的正确数据类型,但我只想分配一个int,然后另一个没有for循环的int进入2D数组,这些值实际上是从另一个函数返回的,但为了简单起见我刚刚使用了int i和k,这就是我认为你会这样做的,但它不是:
int contents[][] = new int[2][2];
contents[0][0] = {int i, int k}
contents[1][1] = {int i, int k}
contents[2][2] = {int i, int k}
Run Code Online (Sandbox Code Playgroud)
TIA - 如果我正在咆哮错误的树,请随意指向更好的数据结构的方向.
小智 32
最好的方法可能是一次声明并分配所有值.如图所示这里.Java将自动确定数组的大小,并将值分配给这样.
int contents[][] = { {1, 2} , { 4, 5} };
Run Code Online (Sandbox Code Playgroud)
或者,如果您需要首先声明数组,请记住每个都contents[0][0]指向一个整数值而不是两个数组.所以要获得与上面相同的作业,你会写:
contents[0][0] = 1;
contents[0][1] = 2;
contents[1][0] = 4;
contents[1][1] = 5;
Run Code Online (Sandbox Code Playgroud)
最后我要注意,2乘2阵列的索引是0到1而不是0到2.
希望有所帮助.
您是否希望在声明时分配2D数组中的所有值?如果是这样,它的工作原理如下:
int[][] contents = new int[][]{ {1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
Run Code Online (Sandbox Code Playgroud)
请记住,Java中的2D数组实际上是一个数组数组,但如果您在声明时执行此操作,Java会为您提供一些特殊语法.
小智 5
看起来您想在一个语句中分配一行?
声明后如:
int[][] matrix = new int[2][2] //A
Run Code Online (Sandbox Code Playgroud)
或者
int[][] matrix = new int[2][] //B
Run Code Online (Sandbox Code Playgroud)
您可以使用两种赋值语句:
matrix[0][0]=1; //can only used in A, or will throw the NullPointerException.
Run Code Online (Sandbox Code Playgroud)
matrix[1]=new int[] {3,3,5};//This can be used both in A and B. In A, the second row will have 3 elements.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
103992 次 |
| 最近记录: |