所谓数组(Array),就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。
数组变量属于引用类型,数组也可看成是对象,数组中的每个元素相当于该对象的成 员变量。
简而言之就是:
同一种类型数据的集合
数组相当于一个容器
数组具有以下特点:
1.引用数据类型
2.数据是个容器,长度一旦确定不可改变
3.一个数组中存放的多个数据的类型要求一致
4.数组中的数据是有序的(索引|下标->从0开始)
操作数组中的数据:
根据下标 数组名[下标|索引]
一维数组
数组的声明:
1.数据类型[] 数组名; ---推荐
Int [ ] a ;
2.数据类型 数组名[];
Int a [ ] ;
数据类型可以是 基本数据类型 | 引用数据类型 :指明数组中要存放数据的类型
数组名:标识符
[ ]-->代表数组,数组的标志
数组的初始化:
动态 初始化:
指明数组的大小,并创建数组,在内存中为其分配空间,后续动态赋值
数据类型[] 数组名=new 数据类型[长度];
没赋值存在默认值:整数0 小数0.0 布尔false 字符型' ' 字符串null
1.
Int [ ] arr 1 ;
arr 1 = new int [ 5 ] ;
2.
String [ ] arr 2 = new String [ 3 ] ;
静态 初始化:
创建的同时赋值,根据数据的个数确定数组的长度
数据类型[] 数组名=new 数据类型[]{值1,值2,值3...};
数据类型[] 数组名={值1,值2,值3...};
double [ ] arr 3 = new double [ ] { 1.1 , 2.2 , 3.3} ;
数组中数据的个数|数组的长度: 数组名.length
数组中最后一个数据的索引: 数组名.length-1
数组的遍历:
1.普通for循环 i->数组中的索引
2.for..each 增强for
for(数据类型 变量名:数组名|容器名){
I 代表数组中的每一个数据
}
For (int i=0; i<=arr3.length-1; i++ ){
System.out.println( arr3[i] ) ;
}
使用数组的时候常见的异常:
1.数组索引越界异常 ArrayIndexOutOfBoundsException
2.空指针异常 NullPointerException
3.数组长度为负数 NegativeArraySizeException
二维数组
数组中存放数组
声明:
数据类型[][] 数组名; --推荐使用
Int [ ][ ] arr = new int [ 3 ][ ] ;
数据类型 数组名[][];
Int arr 1 [ ][ ] ;
数据类型[] 数组名[];
Int [ ] arr 2 [ ] = new int [ 2 ][ 3 ] ;
初始化:
数据类型[][] 数组名 = new 数据类型[长度1][长度2];
长度1:外层数组的长度
长度2:没一个内层数组的长度(每一个小数组的长度一致)
数据类型[][] 数组名 = new 数据类型[长度1][];
数据类型[][] 数组名 = new 数据类型[][]{{1,2,3},{4,5},{6}...};
数据类型[][] 数组名 = {{1,2,3},{4,5},{6}...};
操作二维数组:
数组名[外层数组的索引][内层数组的索引]
遍历二维数组:
双重循环