数组,顾名思义,就是一组数,它是一些数的集合,再扩大点范围,那么它的意思就是一些基本类型的集合,今天要讲的是一维数组,下称数组。
- 数组的声明:
- int[] a = new int[5];
- int a[] = new int[5];
以上两种对数组的声明的方式都是对的,我们首先要声明数组的类型(int),也就是这个集合里存放的变量的类型,然后就是给这个数组起一个名字(a),这个大括号的意思是告诉计算机你声明的是一个数组,方便与普通变量做区分,=后面的内容意思是开辟了一个新的内存空间去存放这个数组并且设定这个数组的长度(也就是数组中能存元素的最多个数)是5
- 数组的赋值:
- int array[] = new int[5];
- array[0] = 1;
- arraya[1] = 2;
- System.out.println(array[0]);
- System.out.println(array[1]);
这里我们要引入一个新的概念——下标。下标是数组种每个元素的索引,也就是元素在数组中的位置,是从0开始计算的。比如我们要把1这个值放到数组a的第一个位置,我们就用了array[0] = 1。 当然,如果这个数组的长度有100个,手动一个个存,肯定不行啊,于是,我们的for循环派上用场了,比如我们要把0到99这100个数按顺序存放进数组:
- public static void main(String[] args) {
- int array[] = new int[100];
- for (int i = 0; i < array.length; i++) {
- array[i] = i;
- }
- System.out.println(array[10]);
- }
这里,我们的array.length是一个方法,是获取数组的长度,用小于这个长度而不用小于等于的原因是我们的数组是从0开始的,长度是100最后一个元素的下标是99,如果等于的话,最后一个元素的下标就是100了,这样会出现一个数组下标越界异常:
- Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 100
最后我们随便打印其中一个元素来验证一下。
-
声明并赋值: 记得在讲基本类型的时候,我们可以声明之后赋值,也可以声明并赋值,其实数组也是可以的:
- int array[] = new int[]{1,2,3,4,5};
- //int array[] = {1,2,3,4,5};//这种写法也没错
- System.out.println(array[0]);
-
数组元素的读取: 通过上面的例子,你大概也已经猜到了吧。没错,要读取数组里的元素,我们的格式是数组名称[下标]就可以了。 我们还可以用循环来获取:
- int array[] = {1,2,3,4,5};
- for (int i = 0; i < array.length; i++) {
- System.out.println(array[i]);
- }
- int array[] = new int[]{1,2,3,4,5};
- for (int i : array) {
- System.out.println(i);
- }
-
数组的常用方法:
-
获取数组长度: 数组名.length
- int array[] = new int[100];
- System.out.println(array.length);
-
获取数组长度: 数组名.length
- 数组除了存放int类型,还可以存放其它类型以及字符串
除了一维数组,我们还可以有多维数组,拿二维度数组举例:
-
多维数组的声明:
- int array[][] = new int[3][4];
- int array[][] = {{1,2,3},{1,2,3}};
-
多维数组的赋值:
- int array[][] = new int[3][3];
- int a = 1;
- for (int i = 0; i < 3; i++) {
- for (int j = 0; j < 3; j++) {
- array[i][j] = a;
- a++;
- }
- }
-
多维数组的遍历:
- int array[][] = {{1,2,3},{1,2,3}};
- for (int i = 0; i < array.length; i++) {
- for (int j = 0; j < array[i].length; j++) {
- System.out.println(array[i][j]);
- }
- }
我们的二维数组可以看成是教室桌子的排列,第一维也就是第一个长度是行,第二维是列,那么上面这段代码int array[][] = new int[3][3];我们可以理解为申请了一个平面,有三排三列。当然,更多维的数组规律也是如此,多维数组在这不做重点细讲。