在Java中,我有这样的集合:
Set<Student> studentsSet = new HashSet<Student>();
有人可以在示例中举例说明如何使用它吗?
答案 0 :(得分:2)
阐述我作为评论提到的内容:
使用rollNumber
作为标识,以便实施equals()
和hashcode()
方法。例如,Student
类可能如下所示:
class Student {
private int rollNumber;
private String name;
public Student(int rollNumber, String name) {
this.rollNumber = rollNumber;
this.name = name;
}
@Override
public int hashCode() {
return rollNumber;
}
@Override
public boolean equals(Object obj) {
Student other = (Student) obj;
return (rollNumber == other.rollNumber);
}
}
您可以通过这种方式删除学生 - 请注意,只有滚动编号会对从集合中删除的内容产生影响,这与equals
和hashcode
寻找的内容一致:
Set<Student> students = new HashSet<Student>();
students.remove(new Student(3, "I don't care what her/his name is!"));