通过本篇文章的阅读,笔者希望你能知道以下问题:
1.数组的使用。
2.多维数组的使用。
3.多维数组如何拆解为多个一维数组。
0.什么是数组?
数组是具有相同的数据类型且按一定次序排列的一组变量的集合体,构成一个数组的这些变量称为数组元素。 数组有一个统一的名字叫数组名。数组按下标个数分类有一维数组,二维数组等,二维以上数组通常称为多维数组。这是C语言上的原话,数组是一种数据结构,一旦声明,长度总是固定的,而且它的元素在内存地址是以连续排列,要想去访问某个元素,只需要按照下标去访问即可,数组的使用频率相当之高,学到集合那块,研究源码的时候,有些集合底层数据结构就是数组,所以你在这里对数据研究的够透彻,那么对于后面集合的学习,非常大的帮助。
1.以类型划分的数组
从上一讲(https://blog.csdn.net/ClAndEllen/article/details/81543128)当中,我们知道Java中的数据类型分为基本数据类型和引用数据类型,因此数组按照类型的划分也可分为原始数据类型数组和引用类型数据数组,为什么这么划分呢?在下一讲,我们将会讲解初学者的Java内存模型,通过它我们可以明显知道原始数据类型数组和引用类型数据数组之间的重大区别。接下来我们就看看以下代码:
//原始类型数据数组:元素是基本8大数据类型的数组
int[] ints1 = new int[3];
int[] ints2 = {1,2,3};
//引用类型数据数组
Integer[] integers1 = new Integer[3];
Integer[] integers2 = {1,2,3};//这是装箱操作
String[] strings1 = new String[3];
String[] strings2 = {"a","b","c"};
2.以维数划分的数组
上面代码中仅仅使用了一维数组,多维数组使用起来也没多复杂,但是却存在一些小技巧,如何把多维数组拆解成一个一个的一维数组,你可以看看下面代码,你以前这么写过吗?
//多维数组
int[][][] ints = new int[2][3][4];
int[][][] intss = {{{1,3},{1,4}},{{1,5},{1,6,7}}};//可以以这种方式为多维数组赋值
int[][] ints1 = ints[0];//获取到三位数组的二维数据
int[][] ints2 = ints[1];
//获取到这个三位数组的所有一维数组
int[] a1 = ints1[0];
int[] a2 = ints1[1];
int[] a3 = ints1[2];
int[] a4 = ints2[0];
int[] a5 = ints2[1];
int[] a6 = ints2[2];
在后续文章中,我们将会在内存的角度对多维数组进行分析,等掌握笔者的这些分析之后,多维数组对于你而言,已经可以完全掌握了。
下篇:
Java高阶之路系列文章之第4讲:初学者的内存分析模型
请耐心等待笔者总结…