数组-二维数组(内存分布,相关运用)
前言:平时用的数组机会也不少,但对二维数组的总结较少。对二维数组的内存分布更是没有了解过。今天对二维数组的内存分布和相关运用进行了重新认识和归纳。
二维数组—数组中的数组。
(在这之前,没有深入思考这句话。后悔莫及!!!)
格式一 例如:
int[][] arr = new int[3][2];
一、我们先来创建一个二维数组。
1、创建一个数组。new [];
2、这个数组里装的是什么。还是数组。new [][];
3、数组的数组(小数组)里装的是什么。是int元素。new int[][];
4、大数组里有几个小数组。new int[3][];
5、小数组里有几个元素。new int[3][2];
6、赋值符号左边定义一个数组类型变量。[] arr =
7、数组里装的是什么。还是数组。[][] arr =
8、小数组里装的什么元素。int[][] arr =
小结:对于格式一。创建一个二维数组,该数组中有3个一位数组,每一个一维数组中有2个元素。
格式二 例如:
int[][] arr = new int[3][];
arr[0] = new int[3];
arr[1] = new int[1];
arr[2] = new int[2];
二、对格式二的深入认识。
1、二维数组中创建了3个数组。
2、每个二维数组都是默认初始化值null。
3、可以对这三个二维数组分别进行初始化。(每个一维数组有多少个元素不定。)
三、二维数组的内存简述。
1、大数组中创建时,会为其“元素”默认初始化为null。因为小数组为实体,不存在时用null来表示空引用(指向)。
2、实体在内存堆中都有独立的空间分配。
3、对于“int[][] arr = new int[3][2];”,相当于在堆中创建了四个一维数组,大数组中装的是小数组的地址,小数组中装的是int元素。
四、二维数组的静态初始化。
int[][] arr = {{2,3,1},{66},{84,2,44,30,92}};
五、二维数组的长度获取方式。
arr.length //表示小数组的个数。
arr[1].length //表示二维数组中角标为1的小数组的元素个数。
六、二维数组的遍历。
需要for的嵌套使用。
For(intx=0;x<arr.length;x++)
{
For(int y=0;y<arr[x].length;y++)
{
System.out.print(“arr[“+x+”][“+y+”]="+arr[x][y]);
}
System.out.println();
}
七、二维数组什么时候用?
记住一个规律:
数据多了——用数组。
数组多了——用二维数组。
(当然用map集合大多数能取代二维数组。)
如有好的建议,可留言或发至笔者邮箱:fzb_xxzy@163.com