HashSet contient des entrées en double

Un HashSet enregistre les valeurs, alors que la méthode equals dit qu'ils sont les mêmes. C'est ce que je pensais.

Mais maintenant, je suis en ajoutant des Éléments à un HashSet où la méthode equals renvoie true, et la taille de la pousse encore?? désolé, je suis confus. Quelques conseils où je me trompe, ce serait bien.

Element t1 = new Element(false, false, false, false);
Element t2 = new Element(true, true, true, true);
Element t3 = new Element(false, false, false, false);

if (t1.equals(t3))
    System.out.println("they're equal");

Set<Element> set = new HashSet<>();

set.add(t1);
set.add(t2);
set.add(t3);

System.out.println("set size: " + set.size());

donc dans cet exemple de ma sortie de la console est:

qu'ils sont égaux
taille du jeu: 3

Qui n'a pas de sens pour moi.. ne faut la taille 2?

avait une petite faute de frappe. au lieu de t2.equals(t3) j'ai vérifié t1.equals(t3) et il est dit que t1 et t3 sont égaux selon leur méthode equals
lire ma réponse, vous devez également remplacer hashCode méthode.
Duplicate

OriginalL'auteur tObi | 2013-04-26