java二维阵列尺寸

Java 2D array dimensions

本问题已经有最佳答案,请猛点这里访问。

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

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

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

或者另一种思考方法是,二维数组只是一个数组。但它是一个长度为3的数组,其中每个组件都是长度为2的数组,还是一个长度为2的数组,其中每个组件都是长度为3的数组。

实际上,2指的是哪个维度,3指的是哪个维度,甚至重要吗?


它是一个由2个数组组成的数组,每个数组由3个元素组成。很简单。


通过更改访问哪个维度的变量,可以将二维数组视为"x x x y"结构或"y x x"结构。所以,它可以是2 x 3或者3 x 2的结构。

但是尺寸是有顺序的。一个int[2][3]是一个由2个int[3]组成的数组,每个数组包含3个ints。

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


二维数组被定义为"数组"。因为数组类型是一个一流的Java类型,所以我们可以有一个数组,一个字符串数组,或者一个对象数组。例如,一个int数组将具有int[]类型。类似地,我们可以使用int[][],它表示一个"整数数组"。这样的阵列称为二维阵列。命令

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

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


三步流程:

//创建单个引用编号(黄色正方形)

1
 int [][] nums;

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

1
nums = new int[5][];

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

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

注意:当您最初声明一个二维数组时:

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

不需要指定第二个维度

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

数组元素:如果nums是如上所示的二维数组,

1
2
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.willamete.edu/~gorr/classes/cs231/chassors/chapter9/arrays2d.htm