Exemple Java HashSet


En Java, j'ai un ensemble comme celui-ci:

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

Quelqu'un Peut-il donner un exemple de comment l'utiliser dans un exemple?

Author: Eric Leschinski, 2013-12-26

1 answers

Exposant ce que j'avais mentionné comme commentaire: Utilisez le rollNumber comme identité, afin d'implémenter les méthodes equals() et hashcode(). Par exemple, la classe Student pourrait ressembler à:

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

}

Vous pouvez supprimer un étudiant de cette façon - notez que seul le numéro de rouleau aura une incidence sur ce qui est supprimé de l'ensemble, ce qui est conforme à ce que les equals et hashcode recherchent:

 Set<Student> students = new HashSet<Student>();
 students.remove(new Student(3, "I don't care what her/his name is!"));
 2
Author: aquaraga, 2014-05-13 07:30:42