When we put a class Object (that has say three data members) in a hashtable, how can I prevent putting another entry into the hash table whose key has the same three data members ? Cos I am guessing this will be a new object. So hashtable.containsKey() will return false even when there is a key (this class object) that has the very same data members as the one that is waiting to be inserted.
More clearly:
I have a class like
class Triplet {
private Curr curr;
private Prev prev;
private Next next;
}
I have a hashtable structure like:
Hashtable<Triplet, Integer> table = new Hashtable<Triplet, Integer>();
When I do:
if(!table.containsKey(triplet_to_inserted))
table.put(triplet, new Integer(0));
will this insert a duplicate even if the table contains a triplet that already has the same data members ? That is: triplet_to_be_inserted.curr, triplet_to_be_inserted.next and triplet_to_be_inserted.prev
If yes, how to prevent this ?
Also, for any entry to be inserted, will containsKey() ever return true at all ?
How to work around this problem ?
Thanks.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…