从另一个arraylist [s]行[s]的行中构建arraylist [s]

时间:2016-03-24 01:45:41

标签: java arraylist

对于有人点击的标题很难详细说明,但基本上问题就是这个。 用户输入他们拥有的学生数量

图为它的工作原理:enter image description here

忽略每个输入下的输出,这就是我的测试,然后打印出每个学生的平均值。

我需要的是获得每个测试的平均值,测试是输入线,也就是10,12是测试1而11,13是测试2并且我将打印平均值

我有测试和学生的对象,并且最终设法得到学生项目打印平均值而不是测试,因为我不知道如何获得每行的第一个。

enter image description here

3 个答案:

答案 0 :(得分:1)

对不起,伙计们我的问题不清楚,但我设法得到它。 这是我的答案。

"$1" "$2"

答案 1 :(得分:0)

以下是假设所有学生都参加所有考试

...
ArrayList tempM = new ArrayList();


for(int j = 0; j != s.length;j++ {
    Double mark = Double.parseDouble(s[j].toString())
    tempM.add(mark);
    Print(tempM.get(j).toString());
    stu.setMarks(tempM);

    Test test = null;
    if (tests.length < testCount) {
        test = new Test();
        tests.add(test);
    } else {
        test = tests.get(j);
    }
    // unknown ... test.addMark(mark)?  test.setMark(stu, mark)? ... something
}

答案 2 :(得分:0)

你可能会遇到一个学生可能比另一个学生接受更多考试的问题。即。如果你为第二个学生输入11 22 33然后10 20 30 40会怎么样?

简单的解决方案,假设所有学生都进行相同数量的测试:

for (int i = 0; i<students.get(0).length; i++){    //Loop over the number of tests
    int total = 0; 
    for (Student student : students){              //Loop over students
         total += student.getMarks[0];             //Add the value for that test result for that student
    }
    Print("results for test " + i + ": " + total/students.size());  //print average
}

如果某些学生的测试比其他学生多 - 那么您需要更改解决方案以适应。