文章目录
一、静态数组
常用格式:
int [] a = new int[]{11 , 22 , 33 , 44};
int [] b = {11 , 22 , 33 , 44};
二、案例:静态数组累加
五个数据分别是11,22,33,44,55,计算相加总数
1、将五个数据存放到静态数组中
2、遍历数组中的每个数据,然后再外面定义求和变量把他们累加起来
代码
public class Demo {
public static void main(String[] args) {
//定义静态数组
int [] b = {11 , 22 , 33 , 44};
//定义一个变量存储相加的和
int sum = 0;
for(int i = 0 ; i < b.length ; i++){
sum += b[i];
}
System.out.println("五个数据相加为" + sum);
}
}
运行结果
五个数据相加为110
三、动态数组
常用格式;
//定义动态数组 数据类型[] 数组名 = new 数据类型[长度];
int[] arr1 = new int[4];
四、案例:评委打分案例
录入6名评委的打分,录入完毕后输出选手的平均得分
分析;
1、定义一个动态初始化的数组存分数
2、遍历数组中的每个位置,每次提示用户录入一个评委的分数,并存入到数组对应的位置
3、 遍历数组中的每个元素进行求和,最终算出平均分打印出来
代码
//导入库
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
//定义一个动态数组
double[] scores = new double[6];
//创建一个Scanner对象
Scanner sc = new Scanner(System.in);
int j = 0;
//循环,录入评委打分情况
for(int i = 1 ; i <= scores.length ; i++) {
System.out.println("第" + i + "个评委打分");
scores[j++] = sc.nextDouble();
}
double sum = 0.0;
//遍历数组,计算选手平均值
for(int i = 0; i < scores.length ; i++){
sum +=scores[i];
}
System.out.println("选手平均值为" + sum / scores.length);
}
}
运行结果
第1个评委打分
11.1
第2个评委打分
22.2
第3个评委打分
33.3
第4个评委打分
44.4
第5个评委打分
55.5
第6个评委打分
66.6
选手平均值为38.85
五、案例1.1:数组求最值
案例:给定500、790、900、100、50五个数据,求最大值
分析:
1、把数值拿到程序中去,用数组装起来
2、定义一个变量用于记录最终的最大值
3、从第二个位置开始;遍历数组的数据,如果遍历的当前数据大于max变量存储的数据,则替换变量存储的数据为当前数据
4、循环结束输出max变量
代码
public class Demo {
public static void main(String[] args) {
//定义一个静态数组
int [] num = {500,790,900,100,50};
//定义一个初始值为0
int a = 0;
for(int i = 0 ; i < num.length ; i++){
if(a <= num[i]){
a = num[i];
}
}
System.out.println("五个数据中最大值为" + a);
}
}
运行结果
五个数据中最大值为900
六、案例1.2:数组反转
案例:某个数组有5个数据:500,790,900,100,50,请将这个数组中的数据进行反转
分析;
1、依次前后交换数据
代码1
public class Demo {
public static void main(String[] args) {
//定义一个静态数组
int [] num = {500,790,900,100,50};
int [] num1 = new int[num.length];
for(int j = 0 , i = num.length - 1 ; j < num.length ; j++ , i--){
//替换
num1[j] = num[i];
}
for(int i = 0 ; i < num.length ; i++){
System.out.println("num1[" + i + "]" + "=" + num1[i]);
}
}
}
代码2
public class Demo {
public static void main(String[] args) {
//定义一个静态数组
int [] num = {500,790,900,100,50};
for(int i = 0 , j = num.length -1 ; i < j ; i++ , j--){
int temp = num[j];
num[j] = num[i];
num[i] = temp;
}
for(int i = 0 ; i < num.length ; i++){
System.out.println(num[i]);
}
}
}
运行结果
num1[0]=50
num1[1]=100
num1[2]=900
num1[3]=790
num1[4]=500
七、案例1.3:随机排名
案例:某公司开发部5名开发人员,要进行项目进展汇报演讲,现在采取随机排名后进行汇报,请先一次录入5名员工的工号,然后展示出来一组随机的排名顺序
分析:
1、在程序中录入5名员工的工号存储起来
2、依次遍历数组中的每个数据
3、每遍历到一个数组,都随机一个索引值出来,让当前数据与该索引位置出的数据进行交换
代码
import java.util.Scanner;
import java.util.Random;
public class Demo {
public static void main(String[] args) {
//定义一个动态数组
int[] nums = new int[5];
//创建一个Scanner对象
Scanner sc = new Scanner(System.in);
int j = 0;
//循环,录入员工工号情况
for(int i = 1 ; i <= nums.length ; i++) {
System.out.println("第" + i + "个员工工号");
nums[j++] = sc.nextInt();
}
//打乱数组中的元素顺序
Random r = new Random();
for(int i = 0; i < nums.length ; i++){
//每遍历一个数据,都随机一个数组索引范围内的值,然后让当前遍历的是数据与该索引处的数值交换位置
int index = r.nextInt(5);
int temp = nums[index];
nums[index] = nums[i];
nums[i] = temp;
}
//遍历
for(int i = 0; i < nums.length ; i++){
System.out.print(nums[i] + " ");
}
}
}
运行结果
第1个员工工号
45
第2个员工工号
23
第3个员工工号
32
第4个员工工号
45
第5个员工工号
65
45 65 32 23 45