Si la clé dans la table de hachage est un objet de classe, comment ne containsKey travail?

Quand on met un Objet de classe (qui a dis trois membres de données) dans une table de hachage, comment puis-je éviter de mettre une autre entrée dans la table de hachage dont les clés a les trois mêmes membres de données ? Cos je devine que ce sera un nouvel objet. Si la table de hachage.containsKey() retournera false, même quand il y a une clé (cet objet de classe) qui a les mêmes membres de données, comme celle qui est en attente d'être inséré.

Plus clairement:
J'ai une classe comme

class Triplet {
private Curr curr;
private Prev prev;
private Next next;
}

J'ai une table de hachage de la structure comme:

Hashtable<Triplet, Integer> table = new Hashtable<Triplet, Integer>();

Quand je fais:

if(!table.containsKey(triplet_to_inserted))
table.put(triplet, new Integer(0));

sera cette insérer un doublon, même si la table contient un triplet qui a déjà les mêmes données membres ? Qui est: triplet_to_be_inserted.curr, triplet_to_be_inserted.prochaine et triplet_to_be_inserted.prev
Si oui, comment faire pour éviter cela ?

Aussi, pour toute inscription à être insérée, containsKey() retourne jamais vrai à tous ?
Comment contourner ce problème ?

Grâce.

Avez-vous remplacé equals et hashCode?

OriginalL'auteur zengal | 2011-06-26