我想要什么我的标题可能不清楚,但我有一个程序,用户可以创建学生(姓名,年龄和程序)。在Main()中,系统会提示用户提问,并可以查看当前学生,并添加新学生。我想添加修改现有学生的选项,但我不知道如何在创建后引用它们。
我有什么 在这里,我创建了空列表:
public static List<Student> populate(){
List<Student> students = new ArrayList<Student>();
return students;
}
当用户想要在循环中添加学生时,主要调用此方法。
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
,我不知道如何选择一个特定的学生并改变他们的属性。
答案 0 :(得分:-1)
首先需要编写一个方法,该方法将从列表中返回与名称(或其他任何内容)匹配的学生对象,例如
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
),则可以执行{{ 1}},这将改变名称。
如果它返回null,那么您只需显示一条消息,说“没有找到具有该名称的学生”。