1.数组的特征
1.空间存储上,内存地址是连续的。
2.每个元素占用的空间大小相同。
3.知道首元素的内存地址。
4.通过下标可以计算出偏移量。
5.通过数学表达式,可快速计算某个下标位置元素的内存地址,直接通过内存地址定位,效率非常高。
2.数组的优缺点
优点:检索效率高。
缺点:随机增删效率较低,数组无法存储大数据量。
注意:数组最后一个元素的增删效率不受影响。
3.数组的初始化
1.一维数组初始化:
数组类型[] 数组名 = {元素1,元素2,元素3....};
例如: int[] i = {2,5,3,7};
以上是通过直接给数组中每个元素赋值并用{}的方式存储元素,该初始化方式称为“静态初始化”。
数组类型[] 数组名 = new 数组类型[数组长度];
例如: String[] s = new String[4];//此时定义了一个长度为4,每个元素默认值为null的数组
通过new创建了一个定长数组,每个元素赋予默认值,该初始化方式为“动态初始化”。
2.数组动态初始化默认值:
基本数组类型:
byte,short,int,long--默认值为:0
float,double--默认值为:0.0
boolean--默认值为:false
char--默认值为:空格
引用数据类型:
默认值都为null。
3.二维数组初始化:
数组类型[][] 数组名 = {{元素1,元素2..},{元素10,元素11..},{}...};
例如:int[][] i ={{1,2}{3,4}{7,8,9}};
以上为静态初始化。
数组类型[][] 数组名 = new 数组类型[外层一维数组长度][内层一维数组长度];
例如:int[][] i = new int[3][4];
以上为动态初始化。
4.数组遍历
1.一维数组遍历:
int[] i = {2,4,5,6};
//1.采用for循环遍历
for(int j = 0; j < i.length; j++){
System.out.println(i[j]);
}
//2.采用foreach循环遍历
for(int j : i){
System.out.println(j);
}
2.二维数组遍历
int[][] i = {{3,5,2}{11,44,55}{8,1}};
//1.采用for循环遍历
for (int j=0;j<i.length;j++) {
for (int k = 0; k < i[j].length; k++) {
System.out.println(i[j][k]);
}
}
//2.采用foreach循环遍历
for(int[] m:i){
for (int n:m){
System.out.println(n);
}
}
5.数组拷贝
数组拷贝:1.采用System.arraycopy()方法
2.静态数组和动态数组都可使用该方法