如何操作和打印2-D ArrayList?

时间:2015-08-12 01:53:52

标签: java arraylist

我正在尝试通过GUI创建一个程序,该程序接受学生的姓名和四个测试标记。它应该能够输出学生的姓名和他们的分数,以及计算个人和班级平均值。

我创建了一个类Student和方法updateStudentInfo

public class Student {
public String firstName;
public String lastName;
public ArrayList<Integer> courseMarks;


public void updateStudentInfo(String first, String last, int test1, int test2, int test3, int test4) {

    firstName = first;
    lastName = last;

    courseMarks = new ArrayList<Integer>();

    courseMarks.add(test1);
    courseMarks.add(test2);
    courseMarks.add(test3);
    courseMarks.add(test4);

}

然后是GUI:

public class StudentRecords extends javax.swing.JFrame {
public ArrayList<Student> studentList = new ArrayList<Student>(); 


private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {                                       
    Student s = new Student();
    s.updateStudentInfo(txtInputFirstName.getText(), txtInputLastName.getText(), new Integer(txtTest1.getText()),
    new Integer(txtTest2.getText()), new Integer(txtTest3.getText()), new Integer(txtTest4.getText()));
    studentList.add(s);

}   

我不完全理解使用类作为数据类型的概念。但我的主要问题是,如何打印ArrayList,并计算平均值?

提前致谢!

1 个答案:

答案 0 :(得分:0)

您可以从覆盖“Student”类中的toString()方法开始。一旦你这样做,每当你打印Student类的对象时,它将以toString()中定义的有用方式打印出来。如果你使用像eclipse或intelliJ这样的IDE,它可以为你生成一个toString()。 这是一个示例:

@Override
public String toString() {
    return "Student [firstName=" + firstName + ", lastName=" + lastName
            + ", courseMarks=" + courseMarks + "]";
}

要计算平均值,您可以添加如下方法:

 float getAverage(){
    float sum = 0;
    for (int i: courseMarks){
        sum +=i;
    }
    return sum/courseMarks.size();              
}

并通过GUI将其作为s.getAverage()来调用,以获得学生“s”的平均分数。