数组
- 存放同一类的元素,并且这些元素之间是连续。可以通过下标获到指定位置的元素
- 使用数组的步骤
- 申明数组
语法: 数据类型[] 数组名字;
例如 int[] score;
2) 给数组分配空间
语法:数组名= new 数据类型[空间的大小]
例如 score=new int[30];
3)放置数据,给元素赋值,采用循环方式
语法:数组名[下标]=值;
4)使用
*******
3、a. 可以对1)和2)进行合并,申明和分配空间一起完成;
语法:数据类型[] 数组名= new 数据类型[空间大小];
b.1)2)3)一次完成,声明,分配空间,赋值一次完成
语法:
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…,元素n};
简化版
数据类型[] 数组名 = {元素1,元素2,…,元素n};
注意:赋值和申明一起执行,不能分开写
4.获取到数组中每个元素时,称为遍历
关于数组的遍历方式有两种
1.for循环 语法: for(int i=0;i<数组大小;i++){}
2.增强for循环 语法:for(元素类型 变量名 :遍历的对象 ){}
对比
- 增强for循环,写法上简单;
- for循环知道下标,增强for是无法得知的
- 在连续的空间上for循环执行效率高于增强for循环;(集合框架)
- 增强for循环更加专注于不连续数据的处理。
数组的使用
通过4步骤完成的
public static void main(String[] args) {
//声明数组
String[] food;
//分配空间大小
food=new String[4];
//给元素赋值
food[0]="饼干";
food[1]="咖啡";
food[2]="蛋糕";
food[3]="牛奶";
//使用
//看看数组的大小 语法 数组名.length
System.out.println("大小:"+food.length);
//获取数组中元素
String s0=food[0];
String s1=food[1];
String s2=food[2];
String s3=food[3];
System.out.println(s0);
}
通过循环取数组中的每个元素,遍历
public static void main(String[] args) {
//声明数组
String[] food;
//分配空间大小
food=new String[4];
//给元素赋值
food[0]="饼干";
food[1]="咖啡";
food[2]="蛋糕";
food[3]="牛奶";
//使用
//看看数组的大小 语法 数组名.length
System.out.println("大小:"+food.length);
for(int i=0;i<food.length;i++) {
System.out.println(food[i]);
}
for(String str : food) {//增强for循环 语法:for(元素类型 变量名 :遍历的对象 ){}
System.out.println(str);
}
}
通过键盘录入5名学生的成绩求平均成绩
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
//申明和分配空间
int[] score=new int[5];
int sumScort=0;//总成绩的变量
//给元素赋值
for(int i=0;i<5;i++) {
System.out.println("请输入第"+(i+1)+"个学生的成绩");
score[i]=sc.nextInt();//第i个下标元素进行赋值
}
//获取总成绩
for(int i=0;i<5;i++) {
sumScort=sumScort+score[i];//获取到底i个位置上的元素,进行求和运算
}
//平均成绩
System.out.println("平均成绩:"+sumScort/5.0);
//求出最高成绩,最小成绩
int maxScore=score[0];
int minScore=score[0];
for(int i=1;i<5;i++) {
int s=score[i];
//和最大值对比
if(s>maxScore) {//成绩比最大还大,则赋给maxScore;
maxScore=s;
}
//和最小值进行对比
if(s<minScore) {//成绩比最小还小,则赋给minScore;
minScore=s;
}
}
System.out.println("最高成绩:"+maxScore+",最低成绩:"+minScore);
}