我正在处理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);
}
}
}
答案 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);
}