我以前从未这样做过,也找不到答案。这可能不是用于此的正确数据类型,但我只想分配一个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}
TIA - 如果我正在咆哮错误的树,请随意指向更好的数据结构的方向。
答案 0 :(得分:32)
最好的方法可能是一次声明并分配所有值。如图所示here。 Java将自动确定数组的大小,并将值分配给这样。
int contents[][] = { {1, 2} , { 4, 5} };
或者,如果您需要先声明数组,请记住每个contents[0][0]
指向一个整数值而不是两个数组。所以为了得到与上面相同的作业,你会写:
contents[0][0] = 1;
contents[0][1] = 2;
contents[1][0] = 4;
contents[1][1] = 5;
最后我要注意,2乘2阵列的索引是0到1而不是0到2。
希望有所帮助。
答案 1 :(得分:5)
您是否希望在申报时分配2D数组中的所有值?如果是这样,它的工作原理如下:
int[][] contents = new int[][]{ {1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
请记住,Java中的2D数组实际上是一个数组数组,但如果您在声明时执行此操作,Java会为您提供一些特殊语法。
答案 2 :(得分:2)
你想要这个:
int [][] t = {{1,2,3},{4,5,6}};
答案 3 :(得分:1)
contents [0] [0]指向一个int,而不是一个int数组。您只能将任何特定索引的单个值分配给数组。
答案 4 :(得分:1)
int Array[][] = {{1, 2}, {3, 4}};
这个数组创建了一个2 * 2 [Row * column] = 4 Boxes的表格。 在1行和1列中存储1。 而在0行和2列中存储0。
答案 5 :(得分:0)
这是你的意思吗?
int contents[][] = new int[2][2];
contents[0][0] = 1;
contents[1][1] = 2;
...
这样,您就可以为2D阵列中的元素分配值,一次一个。
另请注意,您无法访问大小为2的数组中的索引2.大小为2的数组有2个有效标记(0和1)。通常,大小为N的数组具有N个有效标记(0 ...(N-1))
答案 6 :(得分:0)
您是否想在一个语句中分配一行?
声明后,如:
int[][] matrix = new int[2][2] //A
或
int[][] matrix = new int[2][] //B
您可以使用两种赋值语句:
matrix[0][0]=1; //can only used in A, or will throw the NullPointerException.
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.