数组是具有相同数据类型的一组数据的集合,根据维数不同可以分为一维数组、二维数组和多维数组。Java 语言中提供的数组是用来存储固定大小的同类型元素。
在使用数组之前,必须首先定义数组变量所属的类型,即声明数组。
数组元素类型 数组名[]; 或 数据元素类型[] 数组名;
需要注意的声明时是[]中不能添加任何数据。两种声明方式都正确,不同数据要声明不同类型的数组;具体如下:
int arr[]; // 声明int型数组,数组中每个元素都是int型数值 或 String[] str; // 声明String数组,数组中每个元素都是String数组
数组名 = new 数组元素类型[数组元素个数];
实例如下:
arr = new int[5]; //为数组分配一个大小为5的内存空间
数组元素类型 数组名 = new 数组元素类型[数组元素个数];
例如:创建了一个一维数组arr,并指定了数组长度为9。
int arr = new int[9];
数组也可以与基本数据类型一样进行初始化操作,可以分别初始化数组中的每个元素。
数组初始化的方式有两种,具体如下:
int arr1[] = new int[]{1,2,3,4,5}; // 第一种 或 int arr2[] = {10,11,12,13,14}; // 第二种
数组初始化的方式是:把数据包括在大括号之内,中间用逗号分开数组中的元素的值,系统自动为数组分配一定的空间。
练习1:求一组一维数组的和
public class Demo01 { public static void main(String[] args) { int arr[] = {1, 2, 3, 4, 5}; // 创建并初始化数组 int sum = 0; // 存储累加和 for (int i = 0; i < arr.length; i++) { //arr.length表示数组的长度 sum += arr[i]; } System.out.println("sum的和为" + sum); } }
运行结果:
sum的和为15
练习2:遍历数组
public class Demo02 { public static void main(String[] args) { int arr[] = {1, 2, 3, 4, 5}; // 创建并初始化数组 int sum = 0; // 存储累加和 //普通的for循环 for (int i = 0; i < arr.length; i++) { //arr.length表示数组的长度 System.out.print(arr[i] + " "); } System.out.println(); //增强型的for循环 for (int array : arr){ System.out.print(array + " "); } } }
运行结果:
1 2 3 4 5 1 2 3 4 5
如果一维数组中的各个元素仍是一维数组,那么它就是一个二维数组。二维数组常用于表示表,表中的信息以行和列的形式组织,第一个下标代表元素所在的行,第二个下标代码元素所在的列。或用线性代数的知识来说,二维数组就是一个矩阵,第一个下标代表矩阵的行,第二个下标代表矩阵的列。
二维数组的声明也有两种方式,语法格式如下:
数组元素类型 数组名[][]; 数组元素类型[][] 数组名;
与一维数组一样,如果声明时没有分配内存空间,同样也要使用关键字new来分配内存。
二维数组可以看作由多个一维数组组成,在给二维数组分配内存时,可以为这些一维数组同时分配相同的内存。第一个中括号中的数组是一维数组的个数,第二个中括号中是一维数组的长度。
int arr = new int[2][4]; //声明一个二维数组arr并为其分配内存空间,分配后arr拥有两个长度为4的一维数组
二维数组初始化
二维数组的初始化与一维数组类似,同样可以使用大括号完成二维数组的初始化。如下:
int arr[][] = {{3,0},{5,7},{6,9}};
练习:遍历二维数组
public class Demo03 { public static void main(String[] args) { int arr[][] = {{1,2},{3,4,5},{6,7,8,9}}; for(int i=0; i<arr.length; i++) { for(int j=0; j<arr[i].length; j++) { System.out.print(arr[i][j] + " "); // 输出 } System.out.println(); // 换行 } } }
运行结果:
1 2 3 4 5 6 7 8 9
对于三维数组,想必各位已经能推算出来了,一维用一个括号,二维用两个括号,那么三维就用三个括号。
int arr[][][] = new int[][][]{ {{1,2,3},{4,5,6}}, {{7,8,9},{10,11,12}}, {{13,14,15},{16,17,18}} };