【发布时间】:2016-03-11 13:30:25
【问题描述】:
我想要什么我的头衔可能不清楚,但我有一个程序,用户可以在其中创建学生(包括姓名、年龄和程序)。在 Main() 中,用户会收到问题提示,可以查看当前学生并添加新学生。我想添加修改现有学生的选项,但我不知道创建后如何引用他们。
我有什么 在这里我创建了一个空列表:
public static List<Student> populate(){
List<Student> students = new ArrayList<Student>();
return students;
}
当用户想要添加学生时,main会循环调用此方法。
public static void addStudents(List<Student >students){
int Answer = 1;
while ( Answer == 1){
Scanner reader = new Scanner(System.in);
//not shown: user enters student's name (NewName) age (NewAge) and program (NewProgram)
Student nextStudent = new Student(NewName);
students.add(nextStudent);
nextStudent.age = NewAge;
nextStudent.program = NewProgram;
System.out.println("Do you want to add another student? Press 1 for yes and 2 for no.");
Answer = reader.nextInt();
}
}
我所知道的
知道姓名后,我就知道如何更改学生的属性。例如,当我创建一个学生并添加他的年龄时,我写
nextStudent.age = NewAge;
然而,由于在填充我的列表后,他们都被称为NextStudent,我不知道如何选择一个特定的学生并改变他们的属性了。
【问题讨论】:
-
students.get(<some int in the range 0..students.size()-1>).age = NewAge; -
“但是,自从填写我的列表后,他们都被称为 NextStudent”是什么意思?错误可能在于您询问名称的方式。另请注意,您应该将 Scanner 结构移到循环之外 - 现在是开始遵循 Java 命名约定的好时机。
-
维护一个以名称为键的地图(
Map<String, Student>)并按名称选择它们。 -
@Andy Turner .get 我想会起作用,但是用户应该如何知道哪个学生是哪个int?我应该简单地让所有学生都用他们旁边的整数命名吗?
-
遍历列表,寻找具有特定名称的
Student实例。