Unterschied zwischen Wörterbuch und Hashtable

Unterschied zwischen Wörterbuch und Hashtable

Wörterbuch gegen Hashtable

Das Wörterbuch wird tippt (danach müssen nicht bewertet werden), ein Hashtable ist nicht (s müssen Wertschöpfung bewerben). Hashtable hat einen schöneren Weg, einen Wert als ein Wörterbuch zu übertragen. Daher, wenn du benutzt wirst .Netz 3.5, es ist einfach, ein Extensie -metho -Wörterbuch zu schreiben, um ein ähnliches Verhalten zu erhalten.

Die Hashtable -Klasse ist ein spezifischer Typ der Wörterbuchklasse, der einen Ganzzahlwert (als Hash bezeichnet) verwendet. Die Hashtable -Klasse verwendet den Hash, um die Suche nach einem bestimmten Schlüssel in der Bekämpfung zu beschleunigen. Jedes ° C -In .NET leitet sich von der OPJECT -Klasse ab. Diese Klasse setzt die Gethash -Methode an, die eine Ganzzahl zurückgibt, die das Offject eindeutig identifiziert. Die Hashtable -Klasse ist im Allgemeinen eine sehr effizient. Das Problem mit der Hashtable -Klasse besteht.

Es gibt einen meist beeinträchtigen Unterschied zwischen einem Hashtable und einem Wörterbuch. Wenn Sie Indexer verwenden, um einen Wert von einem Hashtable zu erhalten.

Das Hashtable ist die Basisklasse, die schwach tippt wird; Die abstrakte Klasse der DictionaryBase wird streng tippt und verwendet intern einen Hashtable.

Eine seltsame Sache bemerkte, dass ein Wörterbuch ist, wenn wir die mehrfachen Einträge im Wörterbuch hinzufügen, das о -acder, in dem die Einträge hinzugefügt werden, wird beibehalten. Wenn Sie also ein für das Wörterbuch anwenden, erhalten Sie die Reciode im selben, den Sie eingefügt haben. Dies gilt nicht für notonische Hashtable, wenn Sie die gleichen Rece -Rücken in Hashtable hinzufügen, ist das оrder nicht aufrechterhalten. Wenn 'Dictionary auf dem Hashtable basiert' ist wahr, warum das Wörterbuch die оrder, aber hashtable does nimmt, beibehält?

Als warum sie sich anders verhalten, liegt es daran.CloctiEctise.Hash-tabelle. Das Generic Dictionary Implementatio о basiert auf einer Liste der Schlüsselwert für eine Liste. Diese werden dann mit den Hashtable -Eimern für den Rand -Zugriff indiziert, aber wenn es ein Enumerata zurückgibt.