数组是一种线性结构的数据结构。线性结构在内存中是连续 的。
数组特点 :连续 ,每个元素都有下标 ,可以快速查找 ,但是从中间添加,删除就比较麻烦
数组是相同数据类型元素的集合
数组本身是引用数据类型,即对象。但是数组可以存储基本数据类型,也可以存储引用数据类型。
1. 声明
数组的声明的两种方式:
-
数据类型 [] 数组名字 例如:
int [] a;
-
数据类型 数组的名字 [] 例如:
int a[];
注意:
在Java语言中两种声明方法没有任何区别,但是建议大家用第一种,可以把数据类型和变量名分开。
2. 创建
数组创建的三种方式:
- 声明数组的同时,根据指定的长度分配内存,但数组中元素值都为默认的初始化值
int[] ary = new int[10];
- 声明数组并分配内存,同时将其初始化
int[] ary = new int[]{1, 2, 3, 4, 5};
- 与前一种方式相同,仅仅只是语法相对简略
int[] ary = {1, 2, 3, 4, 5};
从另一个角度,数组创建可以分为动态和静态两种
动态创建数组(没有为元素赋值,可以结合for循环进行赋值)
char[] chAry = new char[10];
静态创建数组,在创建的时候,即为每个元素赋初值
int[] ary1 = new int[]{1, 2, 3, 4, 5};
数组的长度:length属性
int [] b1 = new int []{1,2,3,4,5,6,7};
System.out.println(b1.length);//输出7
注意:
Java中数组在创建时,必须给其指定长度
Java中的数组长度一旦给定,就不能改变了
3.访问
数组元素的访问:
-
数组名字[索引]
int [] b1 = new int []{1,2,3,4,5,6,7}; System.out.println(b1[2]);//输出3
注意:
- 数组的索引从0开始。
- 索引的数据类型是整型
- 索引最大值比数组长度小1
4.迭代
数组迭代的两种方式:
1. for循环
int [] b1 = new int []{1,2,3,4,5,6,7};
for(int i =0;i<b1.length;i++){
System.out.println(b1[i]);
}
输出如下:
2.增强for循环
//增强for循环的基本格式
for(数组元素的类型 临时变量名 :数组的名字){
//执行语句
}
int [] b1 = new int []{1,2,3,4,5,6,7};
for(int x:b1){
System.out.println(x);
}
输出与上面的for循环相同
5.二维数组
1. 定义
二维数组就是指数组里面的元素也是数组,
数组的数组—二维数组的每一个元素是一个一维数组
int [][]a = {{1,2,3},{1,2,3},{1,2,3}};
2.声明
int [][] a;//建议使用这种,可以把数组类型和变量名分开
int a[][];
3.创建
数组创建
int [][]a = new int[][]{{1,2,3},{1,2,3},{1,2,3}};
int [] [] b = {{1,2,3},{1,2,3},{1,2,3}};
int [][] c = new int[3][5];
//定义了一个整型的二维数组 ,这个二维数组有3个一维数组,每一个一维数组包含5个元素.
4.迭代
int [][] b1 = new int [][]{{1,2},{3,4}};
for(int i =0;i<b1.length;i++){//循环外部数组 i=0时内层循环{1,2} i=1时到{3,4}
for(int j =0;j<b1[i].length;j++){ //循环内部数组
System.out.print(b1[i][j]);
}
}
输出: