为了账号安全,请及时绑定邮箱和手机立即绑定

ArrayList Integer - 计算平均成绩而不考虑极值

ArrayList Integer - 计算平均成绩而不考虑极值

杨__羊羊 2022-06-23 17:39:23
如何计算平均成绩(算术方法),从而将极端成绩(6)从列表中删除 - 而最小的(1)将从列表中删除?import java.util.*;import java.lang.*;import java.io.*;class ListOfGrades{    public static void main (String[] args) throws java.lang.Exception    {        //Create and fill the list         ArrayList<Integer> grades = new ArrayList<Integer>();        grades.add(1);        grades.add(2);        grades.add(3);        grades.add(4);        grades.add(5);        grades.add(6);        for(int i=0; i < grades.size(); i++) {            System.out.println("Element : [" + i + "] grades " +  grades.get(i)) ;          }        System.out.println();        System.out.println("Removing last Element");        grades.remove(grades.size()-1);        System.out.println("Now all grades are : " + grades);        System.out.println();        System.out.println("Removing first Element");        grades.remove(grades.size()-5);        System.out.println("Now all grades are : " + grades);    }}
查看完整描述

3 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

您可以在之前编写的代码的末尾添加这个简单的代码:


int sum=0;

for (int i=0; i<grades.size();i++){

    sum+=grades.get(i);               //adding all the grades in variable sum

}

double avg= sum/grades.size();      //dividing the sum with total number of 

                                    //grades to calculate average

System.out.println("average grade :" + avg);    


查看完整回答
反对 回复 2022-06-23
?
红颜莎娜

TA贡献1842条经验 获得超13个赞

我试过这样的事情:

 grades.stream().filter(g -> !(g == 1 || g == 6))
                   .reduce((grade, sum) -> grade + sum)
                   .map(sum -> sum / 4)
                   .orElse(0);


查看完整回答
反对 回复 2022-06-23
?
偶然的你

TA贡献1841条经验 获得超3个赞

有使用Collectors::averagingDouble的流 api 解决方案:

Double average = grades.stream()
            .collect(Collectors.averagingDouble(value -> value));


查看完整回答
反对 回复 2022-06-23
  • 3 回答
  • 0 关注
  • 193 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号