猿问

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

如何计算平均成绩(算术方法),从而将极端成绩(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);

    }

}


杨__羊羊
浏览 194回答 3
3回答

哔哔one

您可以在之前编写的代码的末尾添加这个简单的代码:int sum=0;for (int i=0; i<grades.size();i++){&nbsp; &nbsp; sum+=grades.get(i);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//adding all the grades in variable sum}double avg= sum/grades.size();&nbsp; &nbsp; &nbsp; //dividing the sum with total number of&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //grades to calculate averageSystem.out.println("average grade :" + avg);&nbsp; &nbsp;&nbsp;

红颜莎娜

我试过这样的事情:&nbsp;grades.stream().filter(g&nbsp;->&nbsp;!(g&nbsp;==&nbsp;1&nbsp;||&nbsp;g&nbsp;==&nbsp;6)) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.reduce((grade,&nbsp;sum)&nbsp;->&nbsp;grade&nbsp;+&nbsp;sum) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.map(sum&nbsp;->&nbsp;sum&nbsp;/&nbsp;4) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.orElse(0);

偶然的你

有使用Collectors::averagingDouble的流 api 解决方案:Double&nbsp;average&nbsp;=&nbsp;grades.stream() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.collect(Collectors.averagingDouble(value&nbsp;->&nbsp;value));
随时随地看视频慕课网APP

相关分类

Java
我要回答