如何在不使用数组的情况下将多个项目添加到ArrayList

我正在学习Java并尝试一些东西。我希望能够打印学生的姓名及其课程和成绩。我已经编写了以下课程来实现这一目标,但是由于我是新手,所以我想知道自己是否正确地做到了。该代码确实显示了我想要的内容,但是如何最好地对其进行优化?


Subject 班级:


public class Subject {


    private String subjName;

    private int subjGrade;


    public Subject(String subjName, int subjGrade) {

       this.subjName = subjName;

       this.subjGrade = subjGrade;

    }


    public void setName(String name) {

        this.subjName = name;

    }


    public String getName() {

        return subjName;

    }

    public int getGrade(){

        return subjGrade;

    }


    @Override

    public String toString() {

        return String.format( getName() + ", Grade:" + getGrade());

    }

}

StudentSubJGrade 班级:


import javax.swing.text.html.HTMLDocument;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Iterator;


public class StudentSubJGrade {


    String name;

    Subject[] subjects;


    public String getName() {

        return name;

    }


    public void setName(String name) {

        this.name = name;

    }


    public void setSubjects(Subject[] subjects) {

        this.subjects = subjects;

    }


    public StudentSubJGrade(String name, Subject[] subjects) {

        this.name = name;

        this.subjects = subjects;

    }


    @Override

    public String toString() {

        return String.format("Name:" + getName() + " Subjects:" +   Arrays.toString(subjects));

    }

}

我觉得我可以通过ArrayList添加主题,但经过数小时的尝试后却无法提出如何做。不用像我一样使用数组怎么办?


慕容708150
浏览 139回答 2
2回答

ibeautiful

您必须使用数组,因为StudentSubJGrade构造函数希望第二个参数是Subject[]。但是,您可以简化数组的创建:import java.util.ArrayList;public class StudentSubjGradeDriver {&nbsp; &nbsp; public static void main(String[] args) {&nbsp; &nbsp; &nbsp; &nbsp; ArrayList<StudentSubJGrade> test = new ArrayList<>();&nbsp; &nbsp; &nbsp; &nbsp; ArrayList<StudentSubJGrade> test2 = new ArrayList<>();&nbsp; &nbsp; &nbsp; &nbsp; Subject[] subjects = new Subject[] {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; new Subject("Maths",80),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; new Subject("Physic",90),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; new Subject("Chemistry",70)&nbsp; &nbsp; &nbsp; &nbsp; };&nbsp; &nbsp; &nbsp; &nbsp; Subject[] subjects1 = new Subject[] {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; new Subject("Maths",80),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; new Subject("Physic",90),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; new Subject("Chemistry",70),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; new Subject("Geography",90)&nbsp; &nbsp; &nbsp; &nbsp; };&nbsp; &nbsp; &nbsp; &nbsp; test.add(new StudentSubJGrade("Hassan",subjects));&nbsp; &nbsp; &nbsp; &nbsp; test2.add(new StudentSubJGrade("James",subjects1));&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; System.out.println(test);&nbsp; &nbsp; &nbsp; &nbsp; System.out.println(test2);&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java