Ich habe verzweifelt Zweifel an folgenden:Wie verwendet das Hashset Hashtable, wenn der Hash-Satz mehr als ein Objekt mit doppeltem Wert enthält?
sagt sie, ich
hashset<employee> set = new hashSet();
employee e1 = new employee("adithyan",1);
employee e2 = new employee("santhosh",1);
employee e3 = new employee("pavan",2);
set.add(e1);
erstellen --- e1 ist das Objekt, wie hashtable einzigartigen hashcode für diesen erzeugt und wie dieses Objekt wird in Hash-Tabelle gespeichert werden, wie wir wissen hashtable speichert Schlüssel-Wert-Paar
set.add(e2);
- sagen lassen e1 und e2 hashcode sind gleich und Wert wird in gleichen Eimer gespeichert und wenn ich auf id suche = 1, wie es da e1 und e2 Hashcodes suchen sind sa ich würde wohl e1 und e2 im selben eimer speichern, was wäre das ergebnis dafür?
Ich bin verwirrt mit Bucketing, die mehr als ein Objekte zusammen mit Objekten hat gleiche Daten (sagen wir bucket1-> object1.city = bglr, object2.city. = Bglr) - in diesem Fall Hashcode wird gleich sein Beide Objekte sind im gleichen Eimer, ich weiß nicht, wie die Suche funktionieren würde!
Kann jemand erklären, wie Hashset mit demselben Hashcode und Bucketting Konzept funktioniert?
Zunächst verwendet HashSet HashMap nicht HashTable. Zweitens werden sowohl hashCode als auch equals bei der Suche nach einem Schlüssel in der Karte/dem Element in der Menge verwendet. – Eran
Mögliches Duplikat von [Wie behandelt eine Java HashMap verschiedene Objekte mit demselben Hashcode?] (Http://stackoverflow.com/questions/6493605/how-does-a-java-hashmap-handle-different-objects-with -the-same-hash-code) – shmosel
HashSet verwendet Hashtabellen im Hintergrund –