Java 2D数组维度

时间:2014-09-04 18:33:42

标签: java arrays

这一直困扰着我,所以我把它带到了社区,希望有人可以帮助我。假设我有一个二维数组,如

int[][] arr = new int[2][3];

我从来没有真正弄清楚如何考虑这个数组。它是2 x 3还是3 x 2结构。我可以编写方法来打印出两种组合。

另一种思考方式是2D阵列只是一个数组数组。但它是一个长度为3的数组,其中每个组件是一个长度为2的数组,或者是一个长度为2的数组,其中每个组件都是一个长度为3的数组。

有效地,2指的是哪个维度,3指的是哪个维度,或者甚至是否重要?

4 个答案:

答案 0 :(得分:2)

它是一个包含2个数组的数组,每个数组都是3个元素的数组。就这么简单。

答案 1 :(得分:1)

您可以将2D数组视为“x by y”结构或“y by x”结构,方法是更改​​哪个变量访问哪个维度。因此,它可以是2 x 3或3 x 2结构。

但是维度有一个顺序。 int[2][3]是一个包含2 int[3]个数组的数组,每个数组包含3 int个。{/ p>

除了指定它们的顺序之外,维度中没有固有的含义。您可以为每个维度指定任何含义。

答案 2 :(得分:0)

分三个步骤:

//创建单个参考nums(黄色方块)

 int [][] nums;

//创建引用数组(蓝色方块)

nums = new int[5][];

//这会创建第二级数组(红色方块)

for (int i=0; i < 5 ; i++)
   nums[i] = new int[4]; // create arrays of integers

注意:当您最初声明2D数组时:

您必须始终指定第一个维度     nums = new int [] []; //非法 - 需要第1个维度

您无需指定第二个维度

nums = new int[5][]; // OK
nums = new int[5][4]; // OK

数组的元素:如果nums是如上所示的2D数组,

nums[i][j] // represents a single integer in that array
nums[i] //represents a 1D array (a single row in the 2D array)

请参阅链接以获取有关主题的更多信息。

http://www.processing.org/tutorials/2darray/

http://www.leepoint.net/notes-java/data/arrays/arrays-2D.html

http://www.willamette.edu/~gorr/classes/cs231/lectures/chapter9/arrays2d.htm

答案 3 :(得分:0)

二维数组定义为&#34;数组数组&#34;。由于数组类型是第一类Java类型,因此我们可以拥有一个int数组,一个字符串数组或一个Object数组。例如,一组int将具有类型int[]。类似地,我们可以有int[][],它代表一个&#34; int的数组数组&#34;。这种阵列据说是二维阵列。 命令

 int[][] A = new int[2][3];

声明类型为int[][]的变量A,并初始化该变量以引用新创建的对象。该对象是一组int的数组。这里,符号int[2][3]表示数组A中有2个int数组,并且每个数组中有3个int。