定义:数组是相同类型的变量按顺序组成的一种复合数据类型,这些相同类型的变量称为数组的元素或单元。数组通过数组名加索引来使用数组的元素,索引从0开始。
语法:
-
定义数组的语法
类型[] 数组名;
类型[] 数组名1,数组名2;注:(1). 类型可以是基本类型与用户自定义类型。
(2). java不允许在声明数组的方括号内指定数组长度
(3). 没有初始化的数组是不能使用的。 -
数组的初始化
类型[ ] 数组名;
数组名 = new 类型[数组长度];类型[ ] 数组名 = new 类型[数组长度];
注:
(1) .根据实际数据长度分配空间。
(2) .对数组中的每个元素赋初值。
(3) .数组在分配空间的时候会用缺省的初始值对数组的每个元素进行初始化。
(4) .初始化时必须指定数组实际长度。 -
数组的使用方式
int[ ] arr = {1,2,3,4};
int i = arr[1]; //赋值使用。
System.out.println(arr[i]); //直接使用。
System.out.println(arr[i]+20); //在表达式中使用。
double r = Math.sqrt(arr[3]); //在函数中使用。
Arrays.sort(arr); //直接使用数组(排序)。
int l = arr.length; //直接使用数组(数组长度)。
-
for-each 循环
for (声明循环变量:数组的名字){
…
}
例如:
int [ ] arr = {1,2,3,4,5,6};
for(int i: arr){
System.out.println(i); // 注意:i不是arr数组的下标,而是变量
}
-
多维数组
1.多维数组的声明
int[][] arr1, arr2, arr3;
2.多维数组的初始化
int[][] arr1 = new int[][]{{1,2},{3,4},{5,6}};
3.多维数组的长度
int[ ][ ] arr1= {{1,2},{3,4},{5,6}};
int len1 = arr1.length; //数组的行数
int len2 = arr1[1].length; //数组的第1行的长度:列数
注:Java中允许多维数组是不规则数组。
Arrays工具:
-
定义:
Arrays类位于 java.util 包中,主要包含了操纵数组的各种方法。
使用时需要导入包: import java.util.Array -
常用函数:
(1).排序
Arrays.sort(double a[]) 含义:把参数a指定的double类型数组按照升序排序。 Arrays.sort(double a[], int start, int end) 含义:把参数a指定的double类型数组中索引start至end-1 的元素的值按照升序排序。
(2).复制
Arrays.copyOf(int[] original, int newLength) 含义:把参数original指定的数组中从索引0开始的newLength个元素复制到一个新数组中,并返回这个新数组。 Arrays.copyOfRange(int[] original, int from, int to) 含义:把参数original指定的数组中从索引from开始到 to-1的元素复制到一个新数组中,并返回这个新数组。
(3).填充
Arrays.fill(Object[] array,Object object) 含义:可以为数组元素填充相同的值。 Arrays.fill(Object[] array,int from,int to,Object object) 含义:对数组的部分元素填充一个值,从起始位置到结束位置,取头不取尾。
(4).二分法查找(要求数组已排序)
Arrays.binarySearch(double[] a, double number) 含义:判断参数number指定的数是否在a指定的数组中,再返回该元素的索引,不在,返回一个负数。
(5).打印
Arrays.toString(Object[] array) 含义:返回数组的字符串形式