数组
- 常见概念:
- 数组是有序排列的。
- 数组属于引用数据类型的变量。数组的元素可以是任何数据类型,既可以是基本数据类型,也可以是4引用数据类型。
- 创建数组对象会在内存中开辟一整块连续的空间,而数组名中引用的是这块连续空间的首地址。
- 数组的长度一旦确定,不能修改。
- 数组的分类
- 按照维数:一维数组、二维数组…
- 按照数组元素类型:基本数据类型的数组、引用数据类型的数组
- 一维数组的使用
int[] ids;
ids = new int[]{1001,1002,1003,1004}; //静态初始化:数组的初始化和数组元素的赋值操作同时进行
String[] names = new String[5]; //动态初始化:数组的初始化和数组元素的赋值操作分开进行
name[0] = "xxx";
name[1] = "zzz";
name[2] = "aaa";
name[3] = "qqq";
name[4] = "fff"; //赋值不能超出数组长度
- 获取数组的长度
数组名.length - 遍历数组
- 数组元素的默认初始化值
数组元素是整型:0 浮点型:0.0 char型:ascii码0或“/u000”,显示空格效果 boolean:false 引用数据类型:null - 数组的内存解析
内存的简化结构
- 二维数组的使用
可以看成是一维数组array1又作为另一个一维数组array2的元素而存在。其实,从数组底层的运行机制来看,没有多维数组。
int[][] arr1 = new int[][]{{1,2,3},{4,5},{6,7,8}};//静态初始化
String[][] arr2 = new String[3][2];//动态初始化,一个长度为3的数组里面的每个元素为一个长度为2的数组。
String[][] arr2 = new String[3][];//动态初始化
String[] arr2[] = new String[3][2];//动态初始化
- 调用数组的指定位置的元素
数组名[][] - 获取数组的长度
数组名.length 数组名[角标].length - 遍历数组
嵌套循环 - 数组元素的默认初始化值
外层元素为地址值; 内存元素与内层数组元素类型对应的初始值相同。 - 数组的内存解析
其他知识补充
工具类:将不同的功能封装为方法,就是可以直接通过调用方法使用它的功能,而无需考虑具体的功能实现细节。 外层循环控制行数,内层循环控制列数。 衡量一个功能代码的优劣:
- 正确性;
- 可读性;
- 健壮性;
- 高效率与低存储:时间复杂度、空间复杂度;
|