数组
一维数组
只有一个下标的数组称为一维数组
一维数组的声明
格式为:类型标识符 数组名[]/类型标识符[] 数组名
注:声明一维数组时,系统只为数组名(引用变量名)分配存储空间,并未创建具体的数组对象
int abc[];
double[] example2;
创建一维数组对象
创建一维数组对象主要包括3个方面的工作:
为数组对象在对象存储区分配空间
对数组对象进行初始化
将新创建的数组对象与已经声明的引用变量关联起来
直接指定初值的方式创建数组对象
int[] a1 = {23,-9,38,8,65}
用关键字new创建数组对象
格式:类型标识符 数组名[] = new 类型标识符[数组长度]
int[] a2 = new int[9];
一位数组的引用
引用格式:数组名[数组下标]
int[] a = new int[10];
a[3] = 10;
一位数组的应用
测试数组的长度
int[] a1 = new int[8];
System.out.println("a1.length = "+a1.length);
//数组也是一种对象,创建好数组a1后,可以直接访问a1.length来访问a1数组的长度
数组名之间的赋值
int[] a1 = {1,2,3,4,5};
int[] a2 = {7,8,9};
a2 = a1;
//赋值的结果是a2指向a1指向的数组,而a2原来指向的数组由于没有指向而消失
向成员方法传递数组元素
数组元素作为成员方法的实参是单向值传递,即只能由数组元素传递给形参,程序中对形参的任何改变并不会改变数组元素的值
向成员方法传递数组名
数组名作为成员方法的实参是双向地址传递,是把实参数组对象的起始地址传递给形参,程序中对形参数组名指向的各元素值的修改,都是改变实参数组名指向的各元素的值
二维数组
二维数组的声明
格式为: 类型说明符 数组名/类型说明符 数组名
注:声明二维数组时,系统只为数组名(引用变量名)分配存储空间,并未创建具体的数组对象
int arr1[][];
int[][] arr2;
创建二维数组对象
创建二维数组对象主要包括3个方面的工作:
为数组对象在对象存储区分配空间
对数组对象进行初始化
将新创建的数组对象与已经声明的引用变量关联起来
用关键字new创建数组对象
初始化二维数组时,可以只指定数组的行数,而不给出数组的列数
int[][] arra = new int[3][4];
//等价于
int[][] arra;
arra = new int[3][];//创建一个有3个元素的数组,且每个元素也是一个数组
arra[0] = new int[4];//创建arra[0]元素的数组,它有4个元素
arra[1] = new int[4];//创建arra[1]元素的数组,它有4个元素
arra[2] = new int[4];//创建arra[2]元素的数组,它有4个元素
直接指定初值的方式创建二位数组对象
int[][] arr1 = {{1,2,3,4},{2,3,4,5},{3,4,5,6}};
//等价于
int[][] arr1;
arr1 = new int[3][];
arr1[0] = {1,2,3,4};
arr1[1] = {2,3,4,5};
arr1[2] = {3,4,5,6};
二维数组的应用
测试数组的长度
int[][] arr1 = {{1,2},{3,4,5},{6,7,8,9}};
//arr1.length的返回值是3,测定的是数组的行数
//arr1[0].length的返回值是2,测定的是该行的列数