Java 中的数组是在一段连续的内存空间中存储固定数量元素的容器。其本质为一种数据结构,并且存储的元素有着相同的数据类型。
数组是基于索引的数据结构存储,因此它们允许随机访问元素。这里的索引从 0 开始。
数组表示
下面我们创建了一个包含 5 个元素的数组,索引范围从’0’到’4’。
int[] a = new int[5];
a[0] = 1;
a[1] = 2;
a[2] = 4;
a[3] = 8;
a[4] = 16;
上述示例的图形表示如下。
数组 Array 特征
- Java中,数组是 Object 的子类型
- 可以使用’length’属性找到数组的长度
- Java 数组是类型,我们可以声明数组类型的变量
- 数组是有序的,每个数组第一个元素的索引从’0’开始
- 数组中可以存基本数据类型,也可以存对象类型,但在一个数组实例中,所有类型都必须是单一类型
- 就像其他变量一样,数组也可以用作static,final或用作方法参数
- 数组的大小由一个int值指定
- Java 数组是 Cloneable 和 Serializable。
数组类型
数组可以分为一维数组、二维数组、三维数组等,但是除了一维数组外,其他都不常用,于是,我们一般就分为一维数组和多维数组。
一维数组
一维数组声明的一般形式是:
// 语法
type var-name[];
// 举例
int num[];
String names[];
另一种形式:
// 语法
type[] var-name;
// 举例
Long[] size;
Object[] items;
虽然两种形式都是可以用的,但是第一种形式实际上是参照其他编程语言的语法,不建议使用。
我们一般声明变量的时候,先定义类型,在定义变量名,然后赋值。而数组属于一种数据类型,因此定义为type[]
才是合理的。
多维数组
多维数组存储其他数组。它是数组的数组。在多维数组中,数组的每个元素都持有其他数组的引用。通过在每个维度附加一组方括号[ ]
来创建多维数组。
// 语法
type var-name[][];
type[][] var-name;
// 举例
int[][] cordinates;
String nameSets[][];
数组初始化
静态初始化
静态初始化标准格式:
数据类型[ ] 数组名称 = new 数据类型[ ]{元素1,元素2,元素3…}
int[] ids = new int[]{10, 20, 30};
静态初始化简化格式:
数据类型 [ ] 数组名称 = {元素1,元素2,元素3…}
int[] keys = {30, 40, 50};
动态初始化
数据类型 [ ] 数组名称 = new 数据类型[数组长度]
int[] ids = new int[5];
ids[0] = 1;
ids[1] = 2;
ids[2] = 3;