什么是数组?
- 数组是相同类型的变量的集合,所有元素的类型都一样,例如 int 类型
- 可以指定数组包含的元素个数,最多为 int 的最大值个
- 元素有固定的顺序
- 每个元素都有一个固定的编号,称之为索引(index),从 0 开始递增,类型为 int
- 可以像操作变量一样读写数组中的任何一个元素
- 假设之前的变量是一张有名字的纸,那么就可以通过这个名字读写这个变量;类比一下,数组则是一个有名字的本子。本子有一个名字,每页纸有一个页码。通过本子的名字和页码可以读写对应的数组元素。
创建和使用一个数组的语法
- 数组元素类型[] 变量名 = new 数组元素类型[数组长度]
- 变量名[index] 可以使用这和个变量,可以读取也可以给它赋值。
public class CreateArray { public static void main(String[] args) { int[] intArray = new int[9]; // 新建一个int类型的数组,长度为9 初始状态下,数组元素没有赋值的话默认为0 System.out.println(intArray[0]); System.out.println(intArray[8]); double[] doubleArray = new double[100]; System.out.println(doubleArray[66]); System.out.println(doubleArray[99]); } }
用数组处理6门功课的成绩
- 创建一个大小为6的double类型的数组
- 创建一个大小为6的String数组,代表每门课的名字
- 为每门课创建一个 int 变量,值为这门课的成绩对应的数组的索引
- 求出最高成绩的逻辑
public class ScoreArrayMaxScore { public static void main(String[] args) { // 为每门课创建索引 int yuWen = 0; int shuXue = 1; int yingYu = 2; int wuLi = 3; int huaXue = 4; int shengWu = 5; int totalScoreCount = 6; // 科目总门数 double[] scores = new double[totalScoreCount]; // 创建成绩数组存放成绩 String[] scoreNames = new String[totalScoreCount]; // 创建科目名称数组存放名称 scoreNames[yuWen] = "语文"; scoreNames[shuXue] = "数学"; scoreNames[yingYu] = "英语"; scoreNames[wuLi] = "物理"; scoreNames[huaXue] = "化学"; scoreNames[shengWu] = "生物"; for (int i = 0; i < totalScoreCount; i++) { // 生成一个80-100之间的随机数 min+Math.random()*mod 其中,mod=max-min scores[i] = 80 + Math.random()*20; // 在成绩数组中写入成绩 System.out.println(scoreNames[i] + "成绩为:" + scores[i]); } double maxScore = 0; // 最好成绩 int maxScoreIndex = -1; // 最好成绩索引 for (int i = 0; i < totalScoreCount; i++) { if (scores[i] > maxScore) { maxScore = scores[i]; maxScoreIndex = i; } } System.out.println("最好成绩科目是:" + scoreNames[maxScoreIndex] + ",该科目成绩为:" + maxScore); } }