Java数组(十八)
数组(array)
问:如何编写代码保存4名学生的考试成绩?
答:定义4个变量。
问:那“计算全年级400名学生的考试成绩”,怎么办?
......
数组,就可以帮助我们解决问题~
数组可以理解为是一个巨大的“盒子”,里面可以按顺序存放多个类型相同的数据。例如:定义int型的数组scores来存储4名学生的成绩。
数组是一种最简单的复合数据类型,它是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和不同的下标来确定数组中唯一的元素。根据数组的维度,可以将其分为一维数组、二维数组和多维数组等。
数组中的元素都可以通过下标来访问,下标从0开始。例如:可以通过scores[0]获取数组中的第一个元素76,scores[2]就可以取到第三个元素92。
数组特点:
- 数组可以是一维数组、二维数组或多维数组。
- 数组元素的默认值为0,而引用元素的默认值为null。
- 数组的索引从0开始,如果数组有n个元素,那么数组的索引是从0到(n-1)。
- 数组元素可以是任何类型,包括数组类型。
Java中操作数组只需要四个步骤:
1)声明数组
语法:数据类型[] 数组名; / 数据类型 数组名[];
其中,数组名可以是任意合法的变量名。如:
2)分配空间
简单来说,就是指定数组中最多可存储多少个元素。
语法:数组名 = new 数据类型 [数组长度];
其中,数组长度就是数组中能存放元素的个数。如:
也可以将上面的两个步骤合并,在声明数组的同时为它分配空间。如:
3) 赋值
分配空间后就可以向数组中放数据了,数组中元素都是通过下标来访问的。例如:向scores数组中存放学生成绩。
4)处理数组中数据
对赋值后的数组进行操作和处理,如:获取并输出数组中元素的值。
在Java中还提供了另外一种直接创建数组的方式,它将声明数组、分配空间和赋值合并完成。如:
它等价于:
使用循环操作Java中的数组
实际开发中我们经常使用循环控制数组成员的操作。如:
运行结果:
其中,数组名.length用于获取数组的长度
使用循环遍历数组中元素的值。如:
运行结果:
定义一个整型数组,并赋初值61,23,4,74,13,148,20。
定义变量分别保存最大值、最小值、累加值和平均值,并假设数组中的第一个元素既为最大值又为最小值。
使用for循环遍历数组中的元素,分别与假定的最大值和最小值比较。如果比假定的最大值要大,则替换当前的最大值;如果比假定的最小值要小,则替换当前的最小值。
循环执行过程中对数组中的元素进行累加求和。
循环结束根据累加值计算平均值,并打印输出相关内容。
代码如下:
public class HelloJava { public static void main(String[] args) { // 定义一个整型数组,并赋初值 int[] nums = new int[] { 61, 23, 4, 74, 13, 148, 20 }; int max = nums[0]; // 假定最大值为数组中的第一个元素 int min = nums[0]; // 假定最小值为数组中的第一个元素 double sum = 0;// 累加值 double avg = 0;// 平均值 for (int i = 0; i < nums.length; i++) { // 循环遍历数组中的元素 // 如果当前值大于max,则替换max的值 if (nums[i]>max) { max=nums[i]; } // 如果当前值小于min,则替换min的值 if (nums[i]<min) { min=nums[i]; } // 累加求和 sum=sum+nums[i]; } // 求平均值 avg=sum/7; System.out.println("数组中的最大值:" + max); System.out.println("数组中的最小值:" + min); System.out.println("数组中的平均值:" + avg); } }
运行结果: