Java 数组
数组在编程语言中是非常重要的数据结构。本小节我们来一起学习 Java 数组,通过本小节的学习,你将了解到数组的基本概念,如何声明数组以及数组的声明有哪些方式,如何初始化数组以及数组初始化有哪些方式,数组的常用操作有哪些,多维数组的声明、创建、初始化以及迭代等等。多维数组部分将以二维数组进行为例讲解,理解了二维数组,再去理解多维数组就相对容易了。
1. 什么是数组
数组是相同类型的数据按照顺序组成的一种引用数据类型。
Java 中有基本数据类型和引用数据类型两种数据类型。数组就是引用数据类型。
2. 数组声明
在Java语言中,数组声明有两种语法:
- 中括号跟在数据类型后:
DataType[] arrayName;
- 中括号跟在数组名称后:
DataType arrayName[];
其中DataType
是数组中要存放元素的数据类型,例如int
、String
等,arrayName
是数组名称,遵守变量的命名规范。
在实际的编码中,我们更常用的是第一种语法。实例如下:
// 声明一个int类型的数组,名称为 firstIntArray:
int[] firstIntArray; // 推荐写法
int firstIntArray[];
也可以修改数据类型,以生成其他类型的数组。实例如下:
// 声明一个float类型的数组:
float[] firstFloatArray;
// 声明一个字符串类型的数组:
String[] firstStringArray;
3. 数组创建
3.1 先声明再创建
先声明再创建,需要编写两条语句:
DataType[] arrayName;
arrayName = new DataType[数组长度];
数组的创建使用new
关键字,后面跟上一个空格+数据类型+中括号[]
,中括号中间是数组的长度,这里是必须指定的,它是一个整型的数字。实例如下:
// 声明一个整型的数组:
int[] intArray;
// 创建数组,长度为10
intArray = new int[10];
3.2 声明时同时创建
声明时同时创建,需要编写一条语句:
DataType[] arrayName = new DataType[数组长度];
实例如下:
// 声明时同时创建
int[] intArray = new int[10];
数组声明用到的中括号,也可以放到数组名称的后面,实例如下:
int intArray[] = new int[10];
所创建的数组数据类型必须与其声明的数据类型相同。对于其他类型数组的创建,实例如下:
// 创建一个数据类型为字符串、长度为5的数组:
String[] stringArray = new String[5];
// 创建一个数据类型为双精度浮点型、长度为10的数组:
double[] floatArray = new double[10];
// 创建一个数据类型为字符型、长度为10的数组:
char[] charArray;
charArray = new char[10];
4. 数组初始化
数组创建后,所有元素都初始化为默认值,整型数组的元素都为 0,浮点型都为 0. 0 ,布尔型都为 false
。例如 int[] arr = new int[5];
语句创建了一个数组,它在结构可参考下图:
除了数组的默认初始化,还有另外两种常见形式:
- 静态初始化
- 动态初始化
下面我们将分别介绍两种数组的初始化形式。
4.1 静态初始化
静态初始化数组,就是声明的同时,给数组赋值。其语法为:
DataType[] arrayName = {元素1, 元素2, 元素3, 元素n};
赋值符号右边为用中括号所包围的 n 个元素,实例如下:
int[] arr = {1, 2, 3, 4, 5};
上面数组arr
存放的元素为从 1 到 5 这几个整型。其的长度为 5 。 数组的长度就是初始化时所给数组元素的个数。
4.2 动态初始化
动态初始化数组,即数组的声明以及创建是与数组的赋值操作分开进行的。实例如下:
// 声明并创建数组,长度为3
int[] arr = new int[3];
// 给下标位置0赋值为1
arr[0] = 1;
// 给下标位置1赋值为2
arr[1] = 2;
// 给下标位置2赋值为3
arr[2] = 3;
数组是有下标的,下标从0开始,因此长度为 3 的数组,最大下标为 2 。下图展示了上述代码的执行流程:
5. 数组的操作
5.1 数组元素的引用
语法:数组名[下标],下标从0
开始。有一个整型数组,引用其第一个元素,实例如下: