明确地将值分配给2D数组?

时间:2012-02-16 19:53:16

标签: java

我以前从未这样做过,也找不到答案。这可能不是用于此的正确数据类型,但我只想分配一个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 - 如果我正在咆哮错误的树,请随意指向更好的数据结构的方向。

7 个答案:

答案 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.