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的结构。
但是尺寸是有顺序的。一个
在维度中,除了指定它们的顺序之外,没有其他固有的含义。您可以为每个维度赋予任何含义。
二维数组被定义为"数组"。因为数组类型是一个一流的Java类型,所以我们可以有一个数组,一个字符串数组,或者一个对象数组。例如,一个int数组将具有
1 | int[][] A = new int[2][3]; |
声明
三步流程:
//创建单个引用编号(黄色正方形)
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