1700443695
编写高质量代码:改善Java程序的151个建议 建议67:不同的列表选择不同的遍历方法
1700443696
1700443697
我们来思考这样一个案例:统计一个省的各科高考平均值,比如数学平均分是多少,语文平均分是多少等,这是每年招生办都会公布的数据,我们来想想看该算法应如何实现。当然使用数据库中的一个SQL语句就能求出平均值,不过这不再我们的考虑之列,这里还是使用纯Java的算法来解决之,看代码:
1700443698
1700443699
public static void main(String[]args){
1700443700
1700443701
//学生数量,80万
1700443702
1700443703
int stuNum=80*10000;
1700443704
1700443705
//List集合,记录所有学生的分数
1700443706
1700443707
List<Integer>scores=new ArrayList<Integer>(stuNum);
1700443708
1700443709
//写入分数
1700443710
1700443711
for(int i=0;i<stuNum;i++){
1700443712
1700443713
scores.add(new Random().nextInt(150));
1700443714
1700443715
}
1700443716
1700443717
//记录开始计算时间
1700443718
1700443719
long start=System.currentTimeMillis();
1700443720
1700443721
System.out.println(“平均分是:”+average(scores));
1700443722
1700443723
System.out.println(“执行时间:”+(System.currentTimeMillis()-start)+“ms”);
1700443724
1700443725
}
1700443726
1700443727
//计算平均数
1700443728
1700443729
public static int average(List<Integer>list){
1700443730
1700443731
int sum=0;
1700443732
1700443733
//遍历求和
1700443734
1700443735
for(int i:list){
1700443736
1700443737
sum+=i;
1700443738
1700443739
}
1700443740
1700443741
//除以人数,计算平均值
1700443742
1700443743
return sum/list.size();
[
上一页 ]
[ :1.700443694e+09 ]
[
下一页 ]