2014-09-04 159 views
0

这一直窃听我,所以我把它给社会的希望,有人能帮助我。比方说,我有一个二维数组如的Java 2D阵列尺寸

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

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

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

实际上,2引用的维数这三个是指哪个,还是它甚至重要?

+1

[二维数组,行或列首先出现]的可能重复(http://stackoverflow.com/questions/11641985/which-comes-first-in-a-2d-array-rows-or -列) – BackSlash 2014-09-04 18:36:21

回答

1

你能想到的2D阵列,可以是结构“由Y X”或“Y由X”的结构,通过改变可变访问哪个维度。因此,它可以是2 x 3或3 x 2结构。

但没有对尺寸的订单。甲int[2][3]是2个int[3] S,其中的每一个保持3 int秒的阵列。

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

2

它是2个数组的数组,并且它们中的每个3个元素的阵列。就那么简单。

0

A 3步骤的过程:

//创建单一参考NUMS(黄色正方形)

int [][] nums; 

//创建引用的阵列(蓝色正方形)

nums = new int[5][]; 

//创建第二级阵列(红色正方形)

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

注:当你最初声明一个二维数组:

必须始终指定第一维度 NUMS =新INT [] []; //非法 - 需要1ST DIMENSION

不需要指定第二尺寸数组的

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

0

二维阵列被定义为 “数组的数组”。由于数组类型是第一类Java类型,我们可以有一个int数组,一个字符串数组或一个对象数组。例如,一个int数组的类型将是int[]。同样,我们可以有int[][],它表示一个“整数数组”数组。这种数组被认为是一个二维数组。 命令

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

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