如何从数组列表中提取数字,将它们相加并除以数组列表中的数字量?

时间:2016-04-28 16:27:46

标签: java arrays joptionpane

我正在网上看有关数组的课程。它教会了我的基础知识'数组列表:如何创建数组列表。所以我想知道,如何从用户创建一个数组列表'输入(JOptionPane),从中提取数字,将它们相加并除以数组列表中的总数量(长话短说,计算数组的平均值)?

这是我的,有点方法:

import java.util.Arrays;
import javax.swing.JOptionPane;
public class JOptionPaneTesting {

    public static void main(String[] args){
        int grades = Integer.parseInt(JOptionPane.showInputDialog("What are your grades of this month?"));
        int arrayList[] = {Integer.valueOf(grades)};
        int arraysum;
        arraysum = arrayListGetFirstIndex + arrayListGetSecondIndex + ...; //Extracts all of the indices and adds them up?
        int calculation;
        calculation = arraysum / arrayListAmmountOfNumbersInTheList; //An example of how it go about working
    }
}

3 个答案:

答案 0 :(得分:1)

据我所知,您正试图从用户那里获得输入。输入是成绩。然后你想要加上成绩并计算成绩的平均值。

public static double calculateAvg(List<Double>inputGrades){
        List<Double> grades = new ArrayList<Double>(inputGrades);
        double totalScore = 0.0;
        double avgScore = 0.0;
        if(grades !=null && grades.size()>0){
            for(Double grade : grades){
                totalScore = totalScore + grade;
            }
        avgScore = totalScore / grades.size();
        }

        return avgScore;
    }

接受用户输入并将其添加到列表中

List<Double> gradesList= new ArrayList<Double>();
                gradesList.add(25.5);
                gradesList.add(29.5);
                gradesList.add(30.5);
                gradesList.add(35.5);
        System.out.println(calculateAvg(gradesList));

答案 1 :(得分:1)

这也是一个合适的解决方案:

String[] input = JOptionPane.showInputDialog("What are your grades of this month?").split(" ");
        double[] grades = new double[input.length];
        double average = 0.0;
        for (int i = 0; i < input.length; i++) {
            // Note that this is assuming valid input
            grades[i] = Double.parseDouble(input[i]);
            average+=grades[i];
        }
        average /= grades.length;

因此,您可以输入由空格分隔的多个“等级”。

答案 2 :(得分:0)

首先创建一个列表

List<Integer> list = new ArrayList<Integer>();`

然后list.add(grade); 如果你想要添加多个等级,你需要迭代整个上面的行。 然后list.get(index)为您提供特定(指数)成绩。

计算arraySum使用:

for(int i = 0; i < list.size() ; i++)
    arraysum += list.get(i); // and others are same.

我希望这可以帮到你!