无论如何使用String变量为ArrayList / Any Object分配名称?

时间:2016-05-07 06:48:14

标签: java arraylist naming-conventions

我正在处理exercism.io发现的问题。我为学校创建了一个数据库,其中包含学生的相关信息。我提出了一个可能有效的解决方案,但我不确定它在语法上是否可行。

import java.util.ArrayList;

class Student {
    String name;
    Integer grade;

    public Student(String name, Integer grade) {
        this.name = name;
        this.grade = grade;
    }
}

我希望跟踪使用ArrayList创建的成绩,每个成绩包含int,而无需创建完整的k-12现实学校设置。我想根据需要添加成绩。因此,在添加新学生时,我正在检查gradeList是否包含学生成绩,如果不是,我创建该成绩。我想要做的是将学生的成绩转换为String,并使用String作为ArrayList的名称。

这可能吗?

public class School {
    Student current;
    ArrayList<Integer> gradeList;
    ArrayList<ArrayList<Student>> database;

    public School() {
        gradeList = new ArrayList<Integer>();
        database = new ArrayList<ArrayList<Student>>();
    }

    public void createGrade(Integer grade) {
        String addingGrade = Integer.toString(grade);
        ArrayList<Student> addingGrade
    }

    public void add(Student newS) {
        if (!gradeList.contains(newS.grade)) {
            createGrade(newS.grade);
        }

    }

}

1 个答案:

答案 0 :(得分:0)

我认为创建地图是一种更好的方式:

Map<String , ArrayList<Student>> map;
    public void createGrade(Integer grade) {
        if (map == null) {
            map = new HashMap<String , ArrayList<Student>>();
        }
        ArrayList<Student> list = new ArrayList<>();
        //...
        //list.add(student1);
        //list.add(student1);
        //...
        // todo add student
        String addingGrade = Integer.toString(grade);
        map.put(addingGrade , list);
    }