Java,如何搜索保存在数组列表中的对象的特定变量

ved*_*ran 1 java search arraylist

我有一个Personnel课程,我在那里存储所有类型的学生,教授,导师......

class Personnel {
     ArrayList<Student> activeStudentsList = new ArrayList<Student>();
}
Run Code Online (Sandbox Code Playgroud)

我有一个班级学生

class Student extends Person {
    public Student (String studentID, String firstName, String lastName) {
        super(firstName, lastName);
        this.studentID = studentID;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,在将学生添加到数组列表之前我想要做的是检查他是否已经存在.我在用这个:

private boolean isStudentActive(String studentID) {
    if (activeStudentsList.contains(studentID)) {
        System.out.println("The student " + studentID + " is already on the list.");
        return true;
    } else
        return false; 
}
Run Code Online (Sandbox Code Playgroud)

问题是,我的数组列表是ArrayList<Student>,所以我无法搜索特定的String(studentID).我该怎么做呢?我如何只搜索studentID列表中每个对象的字符串?编辑:(有什么东西喜欢activeStudentsList.studentID.contains(studentID)吗?)

Bhe*_*ung 10

您的Student需求来实现equals,并hashCode正确,你可以只使用List.contains.