数组
一、定义
数组(Array),就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类 型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为 数 组名,编号称为下标。
二、特点
- 引用数据类型
- 数据是个容器,长度一旦确定不可改变
- 一个数组中存放的多个数据的类型要求一致
- 数组中的数据是有序的(索引|下标->从0开始)
三、声明
数据类型[] 数组名 (推荐使用)
或
数据类型 数组名[]
int[] arr1; //声明一个存储int类型的数据的数组
四、创建
Java 中使用关键字 new 创建数组对象:
数组名 = new 数组元素的类型[数组元素的个数]
int[] s; //声明一个存储int类型的数据的数组
s = new int[5];
注意:元素为引用数据类型的数组中的每一个元素都需要实例化
五、初始化
1. 动态初始化
数组定义与为数组元素分配空间和赋值的操作分开进行
指明数组的大小,并创建数组,在内存中为其分配空间,后续动态赋值
数据类型[] 数组名=new 数据类型[长度];
没赋值存在默认值:整数0 小数0.0 布尔false 字符型' ' 字符串null
int[] a;
a = new int[3];
a[0] = 1; a[1] = 2; a[2] = 3;
2. 静态初始化
创建的同时赋值,根据数据的个数确定数组的长度
数据类型[] 数组名=new 数据类型[]{值1,值2,值3...};
数据类型[] 数组名={值1,值2,值3...};
double[] arr3=new double[]{1.1,2.2,3.3,4.4};
arr3=new double[]{0.1,0.2,0.3};
boolean[] arr4={false,true,false};
六、 一维数组的遍历
1、普通 for
for(int 索引=0;索引<长度; 索引++){
数组名称[索引] = 值;
}
//遍历数组 普通for 定位的是数组中的每一个空间
for(int i=0;i<=arr3.length-1;i++){
System.out.println(arr3[i]);
}
2、增强 for
for((元素类型 局部变量 : 数组){
局部变量
}
//for..each 获取的是数组中的每一个值
for(String i:arr2){
System.out.println(i);
}
注:使用数组的时候常见的异常:
- .数组索引越界异常 ArrayIndexOutOfBoundsException
- 空指针异常 NullPointerException
- 数组长度为负数 NegativeArraySizeException
七、 二维数组
1. 动态初始化
int[][] a = new int[3][5];
int[][] b = new int[2][];
b[0] = new int[5];
b[1] = new int[2];
2. 静态初始化
int[][] intA = {{0},{3},{2,1}};
int[3][2] intB = {{1,2},{3,4},{5,6}}; // 非法