一、数组的基本概念
1、数组可以看成是多个相同类型数据的集合。
2、数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型。
3、数组的长度一旦确定,就不能修改。
二、一维数组
一维数组的声明
一维数组的声明方式有两种:
- 格式一:数组元素类型 数组名[ ]; 即type var[ ];
- 格式二:数组元素类型[ ] 数组名; 即type[ ] var;
例如:
// 格式1:
int a[];
// 格式2:
int[] a;
注意:JAVA语言中声明数组时不能指定其长度(数组中的元素个数),动态初始化时可以指定其长度。
如:int a[5]; 这样声明一维数组是非法的。
数组对象的创建
JAVA中使用关键字new创建数组对象。
格式为:数组名 = new 数组元素的类型[数组元素的个数]
例如:
// 声明一个int 型的数组
int[] a;
// 创建一个数组对象,该数组的容量为3
a = new[3];
图解数组在内存中的创建过程
数组的动态初始化
特点:数组定义 与为数组元素分配空间和赋值的操作分开进行。
例如:
// 例一:
int[] arr = new int[3];
arr[0] = 3;
arr[1] = 2;
arr[2] = 1;
// 例二:
String[] names;
names = new[3];
names[0] = "钱学森";
names[1] = "霍金";
names[2] = "周深";
数组的静态初始化
特点:在定义数组的同时就为数组元素分配空间并赋值。
例如:
// 例一:
int arr[] = new int[]{3,9,8};
// 例二:
int[] arr = {3,9,8};
// 错误举例
int arr[] = new int[3]{3,9,8};
// 错误示例二:
int arr[];
arr = {3,9,8};
数组元素的默认初始化
数组元素类型 | 元素默认初始值 |
---|---|
byte | 0 |
short | 0 |
int | 0 |
long | 0L |
float | 0.0F |
double | 0.0 |
char | 0 或写为:'u0000'(表现为空) |
boolean | false |
引用类型 | null |
三、数组模型
- 一维数组:一维数组就是一行,一行小格。
- 二维数组:二维数组就是一行加一列组成的一个平面分成的小格,有行有列。
- 三维数组:三维数组就是一个立方体。
四、二维数组
二维数组的动态初始化
五、数组元素的引用
1、定义并用运算符new为数组分配内存空间后,才可以引用数组中的每个元素,数组元素的引用方式为:arrayName[index], index为数组元素下标,可以是整型常量或整型表达式。如:a[3],b[i],c[6*i]。
2、数组元素下标从0开始;长度为n的数组的合法下标取值范围为0 ~ n-1。
3、 每个数组都有一个属性length指明它的长度,例如:a.length的值为数组a的长度(元素个数)。
六、Arrays工具类的使用
java.util.Arrays类即为操作数组的工具类,包含了用来操作数组(比如排序和搜索)的各种方法。
1 | boolean equals(int[] a,int[] b) | 判断两个数组是否相等。 |
2 | String toString(int[] a) | 输出数组信息。 |
3 | void fill(int[] a,int val) | 将指定值填充到数组之中。 |
4 | void sort(int[] a) | 对数组进行排序。 |
5 | int binarySearch(int[] a,int key) | 对排序后的数组进行二分法检索指定的值。 |