J'ai créé un objet HashSet, et la valeur est un objet (Triple) qui est ma propre classe. Mais j'ai une chose étrange, quand il y a deux objets égaux sur mon HashSet, est-ce possible? Voici ma méthode redéfinie pour les égaux dans la classe TripleHashSet avec deux objets égaux?
@Override
public boolean equals(Object other){
if (other == null) return false;
if (other == this) return true;
if (this.getClass() != other.getClass()) return false;
Triple otherTriple = (Triple)other;
if(otherTriple.getSubject().equals(getSubject()) &&
otherTriple.getPredicate().equals(getPredicate()) &&
otherTriple.getObject().equals(getObject()))
return true;
return false;
}
Les deux clés, keyA et keyB, peuvent avoir la même valeur de hachage sans se chevaucher l'une l'autre, sinon le concept global d'une table de hachage ne fonctionnerait pas. Ce n'est que lorsque keyA.equals (keyB) 'que le dernier ajouté écrasera le précédent. –
désolé, c'est un hashSet, pas un hashMap, je viens de le réaliser ... – zfm