数组
数组
1.什么是数组
数组是一个变量,存储相同数据类型的一组数据。
2.数组的存储
数组的地址存储在栈中,数组中的数据实际存放在堆中
3.数组基本要素
标识符:数组的名称,用于区分不同的数组
数组元素:向数组中存放的数据
元素下标:对数组元素进行编号,从零开始,可以通过下标访问数组中的元素
元素类型:数组元素的数据类型
4.如何使用数组
4.1. 声明数组
/*数据类型[] 数组名(推荐)或
*数据类型 数组名[]
*/
int []a
4.2. 分配空间
声明并分配空间:数据类型[] 数组名=new 数据类型[数组大小]
a=new int[5]
4.3. 赋值
边声明边赋值:数据类型[] 数组名=new 数据类型[]{元素1,元素2}
直接赋值:数组名[下标]=值(使用循环逐个赋值)
int[] a=new int[]{1,2,3,4,5}//边声明边赋值方式
int[] b={1,2,3,4,5}//边声明边赋值的简明方式
int[] c=new int[5];
for(int i=0;i<c.length;i++){
c[i]=i;
}
5.数组越界异常
当访问的元素下标超过数组长度时,运行时会发生数组越界异常:
Exception in thread “main” :ArrayIndexOutOfBoundsException
6.数组操作
6.1. 数组排序
使用java.util.Arrays类的sort(数组名)方法:
Arrays.sort(数组名);
6.2. 数组复制
6.2.1. 使用clone()复制
- 语法
数据类型[] newArray=(数据类型[])oldArray.clone();
2.实例
int[] oldArray={1,2,3,4,5};
int[] newArray=(int[])oldArray.clone();
6.2.2. 使用System.arraycopy复制数组
- 语法
System.arraycopy(from, fromIndex, to, toIndex, count)
- 语法说明
from为源数组, fromIndex为源数组起始下标, to为目的数组, toIndex为目的数组起始下标, count为复制的元素个数 - 实例
// 复制数组
int[] oldArray={1,2,3,4,5};
int[] newArray=new int[5];
System.arraycopy(oldArray, 0, newArray, 0, 5);
7. 二维数组
7.1. 定义
数据类型 数组名[][]; 或
数据类型[][] 数组名; 或
数据类型[] 数组名[];
如:
int[][] iArray;
7.2. 初始化
7.2.1. 动态初始化
语法说明:
数据类型[][] 数组名=new 数据类型[m][n]
m:表示二维数组中一维数组的个数
n:表示一维数组中的元素个数
7.2.2. 静态初始化
语法说明:
数据类型[][] 数组名=new 数据类型[][]{{元素…},{元素…},{元素…}}
简化格式:
数据类型[][] 数组名={{元素…},{元素…},{元素…}}
7.3. 二维数组的遍历
int[][] array={{1,2,3},{4,5,6},{7,8,9}};
//打印二维数组中的元素2
System.out.println("打印元素2:\n"+array[0][1]);
//遍历二维数组
System.out.println("遍历数组:");
for(int i=0;i<array.length;i++){
for(int j=0;j<array[i].length;j++){
System.out.print(array[i][j]+"\t");
}
}