Java_5 数组
1.数组的概念与作用
数组:一组数据的集合,数组中的每个数据被称作元素。在数组中可以存放任意类型的元素,但同一个数组里存放的元素类型必须一致。
作用:可以存贮多个数据。
2.数组的使用方式
数据类型[] 数组名 = new 数据类型[元素个数或数组长度];
1)数据类型: 数组中存储元素的数据类型
2) [] 表示数组的意思
3) 变量名 自定义标识符
4) new 创建容器关键字
5)数据类型: 数组中存储元素的数据类型
6)[] 表示数组的意思
7)元素个数,就是数组中,可以存储多少个数据 (恒定, 定长)
如:int[] x = new int[100];c:要点说明
3.注意事项:
数组是一个容器: 存储到数组中的每个元素,都有自己的自动编号,即索引(index)。
访问数组存储的元素,必须依赖于索引, 公式 数组名[索引]
数组的最小索引是0, 最大索引数组.length-1
4 数组的length属性
数组可以通过数组名.length来获得数组的长度。
5.为数组的元素赋值
第一种方式:
int[] arr = {1,2,3}; //即定义了一个有3个元素的整形数组,数组元素为1、2、3。一般来说会比较常用
第二种方式:
int[] arr = new int[3]; arr[0] = 1; arr[1] = 2; arr[2] = 3; //定义了一个有3个元素的整形数组,数组元素为1、2、3
第三种方式:
int[] arr = new int[]{1,2,3}; //定义了一个有3个元素的整形数组,数组元素为1、2、3
6遍历数组
public static void main(String[] args) { int[] arr = {1,2,3}; for (int i = 0; i < arr.length; i++) { //数组下标从0-数组长度-1; System.out.println(i); //把数组内的元素打印出来 }
}
7 数组中常见的异常
数组的索引越界异常
空指针异常
8 数组最值
* 定义数组的第一个元素arr[0]为最大值;循环arr数组,判断如果有比arr[0] 大的就交换,直到arr数组遍历完毕,那么arr[0]中就保存了最大的元素
public static void main(String[] args) { int[] arr = {23,34,45,56,67,2,78}; int max = arr[0]; for (int i = 1; i < arr.length; i++) { //for循环从下标0-arr.length-1 if(arr[i] > max){ max = arr[i]; //如果正在遍历的数组值大于当前最大值,把最大值换为当前数组值 } } System.out.println(max); }
9二维数组的定义
要统计一个学校各个班级学生的考试成绩,又该如何实现呢?
这时就需要用到多维数组,多维数组可以简单地理解为在数组中嵌套数组。
定义格式
a 第一种定义格式:
int[][] arr = new int[3][4];
上面的代码相当于定义了一个3*4的二维数组,即二维数组的长度为3,二维数组中的每个元素又是一个长度为4的 数组
b 第二种定义格式
int[][] arr = new int[3][];
第二种方式和第一种类似,只是数组中每个元素的长度不确定
c 第三种定义格式
int[][] arr = {{1,2},{3,4,5,6},{7,8,9}};
二维数组中定义了三个元素,这三个元素都是数组,分别为{1,2}、{3,4,5,6}、{7,8,9}
10二维数组的遍历
public static void main(String[] args) { int[][] arr = {{1,2,3},{4,9,3},{23,3,6}}; int max = arr[0][0]; for (int i = 1; i < arr.length; i++) { //for循环遍历行从arr下标0-arr.length-1 for (int j = 0; j < arr[i].length; j++) { //for循环遍历列从arr[i]下标0-arr.length-1 if(arr[i][j] > max){ max = arr[i][j]; //如果正在遍历的数组值大于当前最大值,把最大值换为当前数组值 } } } System.out.println(max); }
11二维数组的求和练习
例如要统计一个公司三个销售小组中每个小组的总销售额以及整个公司的销售额。如下所示
第一小组销售额为{41, 22}万元
第二小组销售额为{31, 12, 13}万元
第三小组销售额为{3, 2, 63, 38}万元。
public static void main(String[] args) { int[][] arr = {{41,22},{31,12,13},{3,2,63,38}}; //输入数据 int count = 0; //定义总销售额 for (int i = 0; i < arr.length; i++) { //循环遍历小组 int groupCount = 0; //定义各个小组销售额 for (int j = 0; j < arr[i].length; j++) { //循环遍历每个小组的销售额 groupCount += arr[i][j]; } System.out.println("第"+(i+1)+"个小组销售额为:"+groupCount); //计算出各个小组销售额并输出 count += groupCount; } System.out.println("总销售额为:"+count); //计算出总销售额并输出 }