[学习笔记] Java基础之数组
# 学习 # · 2020-04-05
数组概述
1、为什么需要数组:我们计算平均分不难,首先定义变量,可是班里有 30 个学员,要定义 30 个变量。这么一想,就开始头疼了。这时候呢我们可以用到数组了,数组就是一个变量,用于将相同数据类型的数据储存在内存中。数组的每个数据元素都属于同一数据类型。
2、数组结构:
(1)数组只有一个名称,即标识符,如scores。
(2)数组元素在数组里顺序排列编号,该编号 即为数组下标,它标明了元素在数组中的位置。第一个元素的编号规定为0,因此数组的下标依次为0、1、2、3、4等。
(3)数组中的每个元素都可以通过下标来访问。由于元素是按顺序存储的,每个元素固定对应-个下标,因此可以通过下标快速地访问到每个元素。例如,scores[0]指数组中的第一个元素,scores[1]指数组中的第二个元素。
(4)数组的大小 (长度)是数组可容纳元素的最大数量。定义一个数组的同时也定义了它的大小如果数组已满但是还继续向数组中存储数据的话,程序就会出错, 这称为数组越界。
3、数组基本要素:
(1)标识符:数组的名称,用于区分不同的数组。
(2)数组元素:向数组中存放的数据。
(3)元素下标:对数组元素进行编号,从0开始,数组中的每个元素都可以通过下标来访问。
(4)元素类型:数组元素的数据类型。
使用数组
1、使用数组的步骤:
(1)声明数组:
数据类型[]数组名;
数据类型 数组名[];
(2)分配空间:
数组名 = new 数据类型[数组长度];
(3)声明数组时同时分配空间:
数据类型[] 数组名 = new 数据类型[数组长度];
(4)赋值:
数组名[下标值] = 数组值;
数组应用
1、使用数组计算平均分:
public static void main(String[] args) {
int[] scores = new int[5]; //成绩数组
int sum = 0; //成绩总和
Scanner input = new Scanner(System.in);
System.out.println("请输入5位学员的成绩:");
for(int i = 0; i < scores.length; i++){
scores[i] = input.nextInt();
sum = sum + scores[i]; //成绩累加
}
//计算并输出平均分
System.out.println("学员的平均分是:" + (double)sum/scores.length);
}
2、对数组进行升序排序:
public static void main(String[] args) {
int[] scores = new int[5]; //成绩数组
Scanner input = new Scanner(System.in);
System.out.println("请输入5位学员的成绩:");
//循环录入学员成绩
for(int i = 0; i < scores.length; i++){
scores[i] = input.nextInt();
}
Arrays.sort(scores); //对数组进行升序排序
System.out.print("学员成绩按升序排列:");
//利用循环输出学员成绩
for(int i = 0; i < scores.length; i++){
System.out.print(scores[i] + " ");
}
}
3、计算最大值:
public static void main(String[] args) {
int[] scores = new int[5];
int max = 0; //记录最大值
System.out.println("请输入5位学员的成绩:");
Scanner input = new Scanner(System.in);
for(int i = 0; i < scores.length; i++){
scores[i] = input.nextInt();
}
//计算最大值
max = scores[0];
for(int i = 1; i < scores.length; i++){
if(scores[i] > max){
max = scores[i];
}
}
System.out.println("考试成绩最高分为:" + max);
}
4、向数组中插入一个元素:
public static void main(String[] args) {
int[] list = new int[6]; // 长度为为6的数组
list[0] = 99;
list[1] = 85;
list[2] = 82;
list[3] = 63;
list[4] = 60;
int index = list.length; //保存新增成绩插入位置
System.out.println("请输入新增成绩: ");
Scanner input = new Scanner(System.in);
int num = input.nextInt(); // 输入要插入的数据
//找到新元素的插入位置
for(int i = 0; i < list.length; i++){
if(num > list[i]){
index = i;
break;
}
}
//元素后移
for(int j = list.length-1; j > index; j--){
list[j] = list[j-1]; //index下标开始的元素后移一个位置
}
list[index] = num;//插入数据
System.out.println("插入成绩的下标是:"+index);
System.out.println("插入后的成绩信息是: ");
for (int k = 0; k < list.length; k++) { // 循环输出目前数组中的数据
System.out.print(list[k] + "\t");
}
}
如无特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:一木林多 - https://www.l5v.cn/archives/246/
如若转载,请注明出处:一木林多 - https://www.l5v.cn/archives/246/
评论