一、数组的定义
1.定义数组的语法:数组类型[] 数组名称=new 数组类型[数组长度]
例如:
int[] arr1=new int[5];
double[] arr2=new double[6];
boolean[] arr3=new boolean[7];
//输出数组的地址空间
System.out.println(arr1);
System.out.println(arr2);
System.out.println(arr3);
//输出数组内容
System.out.println(Arrays.toString(arr1));
System.out.println(Arrays.toString(arr2));
System.out.println(Arrays.toString(arr3));
输出结果:
[I@15db9742
[D@6d06d69c
[Z@7852e922
//因为在数组类中没有重写toString方法,所以用数组名只能按照父类的toString方法输出数组的内存地址(可以看看原码,如下:)
//但是可以通过Arrays.toString()方法输出数组的值(原码如下:)
输出结果:
[0, 0, 0, 0, 0]
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[false, false, false, false, false, false, false]
2.数组的语法特点:
①数组所有元素初始化为默认值,整型都是0,浮点型都是0.0,布尔型都是false;
②数组一旦创建后,大小旧不可改变,除非重新指向新的内存空间所以说数组的长度固定,例如:
//当超过数组长度时,会抛出数组下标越界的异常
int arr01[]=new int[5];
arr01[5]=99;
System.out.println(Arrays.toString(arr01));
③访问数组中的某一元素,需要使用索引,数组的索引从0开始
④可以修改数组中的某一个元素,使用赋值语句,例如:
int arr01[]=new int[5];
arr01[0]=99;
System.out.println(Arrays.toString(arr01));
输出结果:[99, 0, 0, 0, 0]
⑤可以用“数组变量.length”获取数组的大小
二、数组的初始化(分配内存空间+存入数据)
定义数组时,直接指定初始化的元素,这样就不必写出数组大小,而是由编译器自动推算数组大小。例如:
//方式一:先创建数组,再逐个存储元素
String[] cityArr1=new String[5];
cityArr1[0]="西安";
cityArr1[1]="宝鸡";
cityArr1[2]="咸阳";
cityArr1[3]="榆林";
cityArr1[4]="延安";
System.out.println("cityArr1"+Arrays.toString(cityArr1));
//方式二:创建数组,并直接初始化数组中的元素(不需要指定数组长度,也不需要使用new关键字来创建数组)
String[] cityArr2={"成都","重庆","贵州","苏州","南京","哈尔滨"};
System.out.println("cityArr2"+Arrays.toString(cityArr2));
//方式三:创建数组,并直接初始化数组中的元素(使用new关键字)
String[] cityArr3=new String[]{"北京","上海","广州"};
System.out.println("cityArr3"+Arrays.toString(cityArr3));
//该方式可以让数组重新分配内存空间,并初始化
cityArr3=new String[]{"汉中","渭南","商洛"};
System.out.println("cityArr3"+Arrays.toString(cityArr3));
输出结果:
cityArr1[西安, 宝鸡, 咸阳, 榆林, 延安]
cityArr2[成都, 重庆, 贵州, 苏州, 南京, 哈尔滨]
cityArr3[北京, 上海, 广州]
cityArr3[汉中, 渭南, 商洛]