HashSet Java示例

时间:2013-12-26 08:27:29

标签: java hashset

在Java中,我有这样的集合:

Set<Student> studentsSet = new HashSet<Student>();

有人可以在示例中举例说明如何使用它吗?

1 个答案:

答案 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);
    }

}

您可以通过这种方式删除学生 - 请注意,只有滚动编号会对从集合中删除的内容产生影响,这与equalshashcode寻找的内容一致:

 Set<Student> students = new HashSet<Student>();
 students.remove(new Student(3, "I don't care what her/his name is!"));