1、数组的优点和缺点:
第一:空间储存上,内存的地址是连续的
第二:每个元素占用的空间大小相同
第三:知道首元素的内存地址
第四:通过下标可以计算出偏移量
通过一个数学表达式,就可以快速计算出某个下标位置上元素的内存地址,
直接通过内存地址定位,效率非常高
优点:检索效率高
缺点:随机赠删效率较低,数组无法储存大数据量
注意:数组最后一个元素的赠删效率不受影响
2、一维数组的静态初始化与动态初始化:
2.1、静态初始化:
int[] arr = {1,2,3,4,5};
Object[] obj = {new Object(),new Object(),new Object(),new Object()};
2.2、动态初始化:
int[] arr = new int[5]; // 5个长度,每个长度的默认值为0
Object[] obj = new Object[5]; // 5个长度,每个长度的默认值为null
3、一维数组的遍历:
for(int i = 0;i < arr.length;i ++){
System.out.println(arr[i]);
}
4、二维数组的静态初始化与动态初始化:*
注:二维数组就相当于特殊的一维数组,二维数组可以拆开为多个一维数组
4.1、静态初始化:
int[][] arr = {
{1,2,3},
{11,33,44,55},
{123,333,233},
{6},
{1000,999},
};
Object[][] obj= {
{new Object(),new Object()},
{new Object(),new Object(),new Object(),new Object()},
{new Object(),new Object(),new Object()},
{new Object()},
{new Object(),new Object()},
};
4.2、动态初始化:
int[][] arr = new int[3][4];
Object[] obj = new Object[3][4]; // 3、4表示3行4列1
5、二维数组的遍历:
// 外层for循环表示遍历外面的一维数组
for(int i = 0;i < arr.length;i ++){
// 内层的for循环表示遍历二维数组里的一维数组
for(int j = 0;j < arr[i].length;j ++){
System.olut.println(arr[i][j]);
}
Syetem.out.println();// 输出一个一维数组内的所有元素就换行
}