Schauen Sie sich das Wikipedia-Artikel: Hashtable
Ein Wörterbuch ist nur ein starker Typ d Implementierung einer Hashtabelle. Es hat eine Reihe von "Eimern", wo es die Gegenstände mit ihren Schlüsseln legt.
Wenn Sie ein Element zur Hashtabelle hinzufügen, verwendet es den Hashcode des Schlüssels, um zu entscheiden, in welchen Bucket es eingefügt wird (normalerweise ein sehr schneller Vorgang, rufen Sie einfach GetHashCode
an und wenden Sie einen Modulo darauf an). Sobald es den Bucket hat (was eine Art Liste ist), prüft es, ob der Bucket bereits ein Element mit dem gleichen Schlüssel enthält, und fügt es hinzu, wenn es nicht der Fall ist. Dies ist auch ziemlich schnell, da jeder Bucket nur eine kleine Teilmenge aller Elemente in der Hashtabelle enthält.
Wenn Sie ein Element basierend auf seinem Schlüssel abrufen möchten, bestimmt es den Bucket basierend auf dem Hashcode des Schlüssels und sucht nach einem Element mit diesem Schlüssel im Bucket.
Natürlich ist dies eine sehr einfache Beschreibung ... siehe den Wikipedia-Artikel für weitere Details.
HashTable + Separate Verkettung http://en.wikipedia.org/wiki/Hash_table#Separate_chaining – Ani
ignorieren Sie einfach den "Primzahl" -Teil für den Moment (es ist eine Anzahl-Theorie-basierte Optimierung), und schauen Sie sich die Graphen in der/hash table/wikipedia Seite. –