12java的多维数组
多维数组
多维数组可以看成数组的数组,比二位数组就是一个特殊的数组,其中的每一个元素都是一个一维数组
int array[][]=new int[2][3];
直接上代码,太精彩了,颠覆了我以前对数组的认知。
package MethodDemo;
public class Demo09 {
public static void main(String[] args) {
//int[][] array = {{1, 2}, {3, 4}, {5, 6}};//二维数组的初始化,3行2列,此处着重理解记忆
int[][] array = new int[3][2];//产生一个三行两列的数组,不初始化,默认值是全0
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
array[i][j]=i*j;
}
}
/*颠覆我之前对二维数组认知的地方来了
1,2 array[0] array[0]是一个一维数组(对象),它里面存的是一个数组,有两个元素
3,4 array[1]
5,6 array[2]
*/
System.out.println(array.length);//三个array[i]
System.out.println(array[1].length);//输出结果是2,也就是一维数组array[1]的长度
Demo08 demo08 = new Demo08();
demo08.PrintArray(array[2]);
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.print(array[i][j]+" ");
if(j==array[i].length-1)
System.out.println();
}
}
}
}
我以前理解的二维数组是直接认为它是一个矩阵,有m行n列,这样理解在数据操作上也没有大问题,只是没有理解多维数组本质。
同样,如果是三维数组,那就是array[0]里面存的是array【0】【i】,而array【0】【i】里面存的是array【0】【i】【0-j】,此时array【0】、array【0】【i】都成了对象。
- 下面是二维数组的内存形式。
- array【i】是一个对象,里面存储着array【i】【j】,array【i】【j】是成员(元素),如图1。
- 理解了二维数组的本质之后,我们在用矩阵的视角来看二维数组,int[][] array = new int【3】【2】;3行2列的矩阵,其中行是new出来一位数组对象的个数,列是一位数组对象中二维数组元素的个数。再看一下直接初始化数组成员的例子int【】【】 array = {{1, 2}, {3, 4}, {5, 6}};下面用图2进行解释。如图2所示,二维数组只不过是把一维数组的每个元素有扩展成一个一维数组,用相同的格式括起来。
- 由于Markdown命令的原因,使用因为英文括号可能会不能显示,所以在文本区使用中文的括号。
图1
图2
自学java,请多多指教!