这一直困扰着我,所以我把它带到了社区,希望有人可以帮助我。假设我有一个二维数组,如
int[][] arr = new int[2][3];
我从来没有真正弄清楚如何考虑这个数组。它是2 x 3还是3 x 2结构。我可以编写方法来打印出两种组合。
另一种思考方式是2D阵列只是一个数组数组。但它是一个长度为3的数组,其中每个组件是一个长度为2的数组,或者是一个长度为2的数组,其中每个组件都是一个长度为3的数组。
有效地,2指的是哪个维度,3指的是哪个维度,或者甚至是否重要?
答案 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。