数组是一种数据结构,用来存储同一类型值的集合。通过一个整型下标可以访问数组中的每一个值。例如,如果 a 是一个整型数组,a[i] 就是数组中下标为 i 的整数。
在声明数组变量时,需要指出数组类型(数据元素类型紧跟 [])和数组变量的名字。
数组初始化
在 Java 中,提供了一种创建数组对象并同时赋予初始值的简化书写形式。
int[] arr = {1, 2, 3, 5, 8, 13, 21, 34};
还可以初始化一个匿名的数组。
new int[]{1, 2, 3, 5, 8, 13, 21, 34}
这种表示法将创建一个新数组并利用括号中提供的值进行初始化,数组的大小就是初始值的个数。使用这种语法形式可以在不创建新变量的情况下重新初始化一个数组。
注释:在 Java 中,允许数组长度为 0。在编写一个结果为数组的方法时,如果碰巧结果为空,则这种语法形式就显得非常有用。注意,数组长度为 0 与 null 不同。
数组拷贝
在 Java 中,允许将一个数组变量拷贝给另一个数组变量。这时,两个变量将引用同 一个数组。
如果希望将一个数组的所有值拷贝到一个新的数组中去,就要使用 Arrays 类的 copyOf 方法:
int[] arr = {1, 2, 3, 5, 8, 13, 21, 34};
int[] copyArr = Arrays.copyOf(arr, arr.length);
System.out.println(arr == copyArr);// 输出为 false,也说明了深拷贝
第 2 个参数是新数组的长度。这个方法通常用来增加数组的大小;如果数组元素是数值型,那么多余的元素将被赋值为 0;如果数组元素是布尔型,则将赋值为 false。相反,如果长度小于原始数组的长度,则只拷贝最前面的数据元素。
数组排序
要想对数值型数组进行排序,可以使用 Arrays 类中的 sort 方法。
这个方法使用了优化的快速排序算法。快速排序算法对于大多数数据集合来说都是效率比较高的。
java.util.Arrays API
版本 | 方法描述 |
---|---|
1.2 |
static primitive_type binarySearch(primitive_type[] a, primitive_type key) 使用二分搜索法来搜索指定的基本类型数组,以获得指定的值。 |
1.6 |
static primitive_type binarySearch(primitive_type[] a, int fromIndex, int toIndex, primitive_type key) 使用二分搜索法来搜索指定的基本类型数组的范围,以获得指定的值。 |
1.6 |
static primitive_type[] copyOf(primitive_type[] original, int newLength) 复制指定的数组,截取或用 0 或 false 填充(如有必要),以使副本具有指定的长度。 |
1.2 |
static boolean equals(primitive_type[] a, primitive_type[] a2) 如果两个指定的基本类型数组彼此相等,则返回 true。 |
1.2 |
static void fill(primitive_type[] a, primitive_type val) 将指定的基本类型值分配给指定基本类型数组的每个元素。 |
1.2 |
static void sort(primitive_type[] a) 对指定的基本类型数组按数字升序进行排序。 |
1.5 |
static String toString(primitive_type[] a) 返回指定数组内容的字符串表示形式。 |