0%

数组

数组

数组的本质是一个相同数据类型的元素集合。元素是数组的组成部分,数组中每一个元素都可以使用唯一的索引值来访问,这个索引值也可以叫做数组下标。数组是很多集合类的底层存储结构,在了解java集合类之前大家先了解一下数组吧。

数组初始化

数组的声明语法为

1
2
3
4
// type为类型  arrayName为数组变量名称
type[] arrayName;
//如:
int[] numbers;

在进行数组初始化时,有静态初始化和动态初始化两种方式。

静态初始化

静态初始化是指在初始化数组时为数组的每个元素赋值,由元素的个数来决定数组的长度

1
2
3
int[] numbers = {1,2,3};
// 或者
numbers = new int[]{1,2,3};

动态初始化

动态初始化是指在初始化数组时指定数组长度,系统为每个元素分配初始值,之后再按照需要为每个元素修改值。

1
2
int[] numbers = new int[3];// 此时numbers中的元素为 0,0,0
numbers[0] = 1;// 将索引0的位置赋值为1

注意:数组的索引是从0开始的

二维数组

上面说的数组是一个一维数组,java可以构建多维数组,其实本质上来说还是一维数组,只是数组中的元素存储的还是数组而已。

二维数组可以看做是一个表格,有行有列,二维数组中的每一个元素就代表了确定行列的一个单元格

二维数组的声明为

1
2
3
4
// type为类型  arrayName为数组变量名称
type[][] arrayName;
//如:
int[][] numbers;

静态初始化

1
2
3
int[][] numbers = {{1,2,3},{1,2,3}};
// 或者
numbers = new int[][]{{1,2,3},{1,2,3}};

动态初始化

1
2
3
int[][] numbers = new int[3][3];// 此时numbers中的每个元素都为0
// 如果需要确认某个元素的话,需要指定两个索引,第一个索引找到该位置下的一维数组,第二个索引找到所需要的元素
numbers[0][0] = 1;// 将该位置赋值为1

非矩形数组

由于第二个索引代表的是该索引位置对应的一维数组,每个索引下的数组长度不同时就是非矩形数组。

静态初始化

1
2
3
int[][] numbers = {{1,2,3},{1,2,3,4}};
// 或者
numbers = new int[][]{{1,2,3},{1,2,3,4}};

动态初始化

1
2
3
4
5
// 第二个索引长度不指定,因为每个是不同的
int[][] numbers = new int[3][];
numbers[0] = new int[4];
numbers[1] = new int[5];
numbers[2] = new int[6];