在不知道名称的情况下修改List的类成员

时间:2016-03-11 13:30:25

标签: java list class

我想要什么我的标题可能不清楚,但我有一个程序,用户可以创建学生(姓名,年龄和程序)。在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,我不知道如何选择一个特定的学生并改变他们的属性。

1 个答案:

答案 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,那么您只需显示一条消息,说“没有找到具有该名称的学生”。