Java数组
一、创建数组的格式
二、数组下标
三、存放数组元素
四、取出数组元素
五、二维数组等多维数组
遍历二维数组
一、创建数组的格式:
- 数组所需要存储的数据类型[ ] 数组对象变量名 = new … 数据类型[length];
- int[] arr = new int[10];// 定义了一个空间为10的 int型数组
- 数组所需要存储的数据类型[ ] 数组对象变量名 = {元素1,元素2,元素3};
- String[] btnstrs={“原图”,”马赛克“};
1. 任何数组都只有一个属性:length(数组的长度,能够存储的元素个数)
2. 定义了数据类型的数组只能够存放当前数据类型的元素。
二、数组下标
下标:从数组的第一个空间开始,计数为0,依次递增,下标的最大值为: length-1
我们定义数组长度时指定了length,代表能够存放元素的个数,下标从0开始,代表第一个元素。
例如:int[] arr = new int[10];那么第一个元素就是arr[0],最后一个元素就是arr[length-1],也就是arr[9]
三、存放数组元素
存放数组元素:数组名[下标]=元素;
例如:arr[0] = 1; //将数组arr的第一个元素赋值1
要注意数组下标不要越界!
例如:
int[] arr = new int[10];
arr[10] = 1; //error! 10超出了数组的界限
由于arr[10]代表取数组第11个元素,而arr[]只有10个元素空间,因此会超出界限报错,这就是数组越界
数组越界可以是越上界,也可以是越下界,需要我们时刻注意
可以使用for循环遍历数组进行赋值:
for(int i=0; i < arr.length; i++){
arr[i] = 值;
}
四、取出数组元素
取出数组元素:
- 存储类型 变量名 = 数组名[下标];用于赋值
- 直接使用 数组名[下标]; 用于直接使用数组元素进行操作
例如:
int n=arr[0];把arr[0]代表的int值赋给n。
if(arr[0]==0){}把arr[0]代表的值直接用来判断
同样要注意如果要赋值,数据类型也要匹配。
五、二维数组等多维数组
二维数组:数组所需要存储的数据类型[][] 数组对象变量名 = new … 数据类型[length1][length2];
首先明确一个概念:任何维度的数组都是一维的
那么二维数组本身就不存在,本质也是一维数组
下面我们拿int[][]系列作为范例说明
- []表示数组标识
- int[] 表示一种引用数据类型
- (数据类型)[]表示数组,所以我们再加一个[] (int[])[],这就是上面我们的二维数组int[][]
- 我们可以看出,对当前数组来说,[]是唯一的
- 所以我们可以推至三维数组:((int[])[])[] -> int[][][]
下面我们针对二维数组来举例:
int[][] arr2 = new int[10][8];
- 长度为10的数组,每个元素又是一个长度为8的数组
- 直接取到int值
- arr2[第几个元素][中的第几个元素];
- 单独取一个元素(一个一维数组)
- arr2[第几个一维数组下标]
int[][] arr2 = new int[10][8];
// 从二维数组中 取出一个单个一维数组
int[] arr_2_9 = arr2[9];
// 操作单个一维数组
arr_2_9[0]=500;
遍历二维数组
就像遍历一维数组那样,只不过我们的for循环变成了两层,先遍历总共的一维数组个数length1,再分别遍历每个一维数组元素个数length2
for(int i=0;i<10;i++){// 当作每次取出一个一维数组
for(int j=0;j<8;j++){// 把每个一维数组里循环从头到尾操作
int num = arr2[i][j];
}
}
我们还可以使用单层for循环,使用取余取模操作对数组进行遍历,原理是一样的
for (int i = 0; i < arr2.length*arr2[0].length;i++) {
int num1= arr2[i/8][i%8]; //这里的8就对应上面的arr2[0].length,原理是每当遍历完一个一维数组,
i/8会自动+1,而i%8会自动变为0,这样即可达到类似二维for循环的效果
System.out.print(num1+" ");
}