为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕容708150 2021-03-30 12:11:08
我正在学习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添加主题,但经过数小时的尝试后却无法提出如何做。不用像我一样使用数组怎么办?
查看完整描述

2 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

您必须使用数组,因为StudentSubJGrade构造函数希望第二个参数是Subject[]。但是,您可以简化数组的创建:


import java.util.ArrayList;


public class StudentSubjGradeDriver {


    public static void main(String[] args) {


        ArrayList<StudentSubJGrade> test = new ArrayList<>();

        ArrayList<StudentSubJGrade> test2 = new ArrayList<>();


        Subject[] subjects = new Subject[] {

            new Subject("Maths",80),

            new Subject("Physic",90),

            new Subject("Chemistry",70)

        };


        Subject[] subjects1 = new Subject[] {

            new Subject("Maths",80),

            new Subject("Physic",90),

            new Subject("Chemistry",70),

            new Subject("Geography",90)

        };


        test.add(new StudentSubJGrade("Hassan",subjects));

        test2.add(new StudentSubJGrade("James",subjects1));   


        System.out.println(test);

        System.out.println(test2);    

    }

}


查看完整回答
反对 回复 2021-04-21
  • 2 回答
  • 0 关注
  • 138 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信