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

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

最好的方法可能是一次声明并分配所有值。 如图所示。 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乘2arrays的索引是0到1而不是0到2。

希望有所帮助。

您是否希望在声明时分配2D数组中的所有值? 如果是这样,它的工作原理如下:

 int[][] contents = new int[][]{ {1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; 

请记住,Java中的2D数组实际上是一个数组数组,但如果您在声明时执行此操作,Java会为您提供一些特殊语法。

你要这个:

 int [][] t = {{1,2,3},{4,5,6}}; 

contents [0] [0]指向单个int,而不是int数组。 您只能将任何特定索引的单个值分配给数组。

你是这个意思吗?

 int contents[][] = new int[2][2]; contents[0][0] = 1; contents[1][1] = 2; ... 

这样您就可以为2Darrays中的元素分配值,一次一个。

另请注意,您无法访问大小为2的数组中的索引2.大小为2的数组有2个有效标记(0和1)。 通常,大小为N的数组有N个有效指标(0 …(N-1))

 int Array[][] = {{1, 2}, {3, 4}}; 

这个数组创建了一个2 * 2 [Row * column] = 4 Boxes的表格。 在1行和1列中存储1。 而在0行和2列中存储0。