繁体   English   中英

如何操作和打印二维ArrayList?

[英]How do I manipulate and print a 2-D 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并计算平均值?

提前致谢!

您可以从覆盖“学生”类中的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”的平均成绩。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM