我想要什么 我的标题可能不清楚,但我有一个程序,用户可以在其中创建学生(带有姓名、年龄和程序)。从 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
,我不确定如何选择特定的学生并更改他们的属性。
您首先需要编写一个方法,该方法将从列表中返回与名称(或其他任何内容)匹配的学生对象,例如
public Student findByName(List<Student> students, String name){
for(Student student : students){
if(student.getName().equals(name)){
return student;
}
}
return null;
}
完成此操作后,您可以从editStudent()
方法调用此方法,如果它返回一个object
(即 not null
),您可以执行student.setName("")
,这将更改名称。如果它返回 null,那么您可以只显示一条消息,指出"找不到具有该名称的学生"。