概念
用于储存多个相同类型元素的容器,其本质是在内存中申请一段连续的存储单元。
语法
数据类型 [ ] 数组名; 或者 数组类型 数组名 [ ];
示例
int []i; float[]f; String []s; boolean []b; short[]sh = new short[100];//给数组分配空间 //系统会给数组在内存中分配100个short类型所占用的空间,用来存储100个单精度浮点数。
数组的访问
语法
数组名 [ 下标索引 ];
示例
//声明一个int类型的数组并初始化
int []i={1,6,5,78,23};
System.out.println(i[3]);
//打印结果为:78,
System.out.println(i.length);
//打印数组的长度为: 5
数组的下标索引是从0开始,所以打印数组的第三个元素结果为78,因此索引的取值范围必须为0 ~ (数组长度-1),可以通过 数组名.length获取数组长度,当下标索引超过数组超过length - 1时会报错ArrayIndexOutOfBoundsException:(数组下标越界异常)。
数组的初始化
1 数组的静态初始化
在定义数组时就对其进行初始化,个元素之间用 “ ,”隔开
int []i = {1, 3, 4, 7, 9};
2 数组的动态初始化
先定义指定数组的长度,再对数组中的元素进行初始化。
int [] i = new int[3]; i[0] = 1; i[1] = 2; i[2] = 3;
foreach遍历数组
语法
for (数据类型 变量名 : 数组名)
示例
int[]i={1,2,4,5,7,8};
for(int a : i){
System.out.println(a);
}
//打印结果为:1 2 4 5 7 8
二维数组
对于一个数组中的元素依旧是一个数组,这样的数组我们称之为二维数组
语法
数据类型 [ ] [ ]数组名;
示例
//创建一个二维数组
int [][]i;
//创建二维数组并对其进行初始化(静态初始化)
int [][] a={{1,2},{3,4},{5,6}};
//动态初始化
//b数组中有两个元素,这两个元素分别是两个数组,数组中又各自有两个int类型的元素
int [][]b = new int [2][2];
b[0][0]=1;//第一个元素数组的第一个值为1;
b[0][1]=2;//第一个元素数组的第二个值为2;
b[1][0]=3;//第二个元素数组的第一个值为3;
b[1][1]=4;//第二个元素数组的第二个值为4;
对象数组
一个数组中的所有元素都是对象。
语法
类名 [ ] 数组名 = new 类名[长度];
示例
//自定义Person类
public class Person{
//定义成员变量
private String name;
private int id;
//提供有参构造
Person(String name, int id){
this.name=name;
this.id=id;
}
@Override//为了方便下面的遍历需要对toString方法进行重写
public String toString() {
return "Person{" +
"name='" + name + ''' +
", id=" + id +
'}';
}
public static void main(String[]args){
Person [] p = new Person[2];
p[0]= new Person("张三",20);
p[1]= new Person("李四",22);
//遍历对象数组
for(Person per : p){
System.out.println(per);
}
}
}
打印结果:
未重写toString前:
Test.Person@4554617c
Test.Person@74a14482
重写toString后:
Person{name='张三', id=20}
Person{name='李四', id=22}



