Unterschied zwischen Hashtable und Dictionary

Inhaltsverzeichnis:

Anonim

Die Hauptunterschied zwischen Hashtable und Dictionary ist, dass die Hashtable ist eine schwach typisierte Datenstruktur, sodass es möglich ist, Schlüssel und Werte jeden Typs hinzuzufügen, während das Dictionary eine stark typisierte Datenstruktur ist, sodass es nur möglich ist, die Elemente hinzuzufügen, die die angegebenen Datentypen für Schlüssel und Wert erfüllen.

Hashtable und Dictionary sind zwei Hauptdatenstrukturen. Beide können Daten als Schlüssel-Wert-Paare enthalten. Eine Hashtable oder ein Dictionary kann nur eindeutige Schlüssel enthalten. Mit der Taste kann der Programmierer einen bestimmten Wert suchen oder entfernen. Hashtable ist nicht stark typisiert. Daher kann der Programmierer der Hashtable jedes Element eines Schlüssel-Wert-Paares hinzufügen. Andererseits ist das Dictionary stark typisiert. Der Programmierer sollte die Datentypen der Schlüssel und Werte angeben. Es ist nicht möglich, Elemente hinzuzufügen, die die angegebenen Datentypen nicht erfüllen. Wenn das Dictionary beispielsweise den generischen Typ hat, kann der Programmierer nur Elemente mit Schlüsseln vom Typ int und Werten vom Typ Zeichenfolge hinzufügen.

Wörterbuch, Hashtabelle, Datenstrukturen

Was ist ein generischer Datentyp?

Ein generischer Datentyp ist ein Datentyp, der es dem Benutzer ermöglicht, Klassen und Methoden mit Platzhaltern zu definieren. Compiler wie C# können die Platzhalter zur Kompilierzeit durch den angegebenen Datentyp ersetzen. Es wird verwendet, um allgemeine Klassen und Methoden zu erstellen. Beim Definieren einer generischen Klasse sollte der Programmierer spitze Klammern () verwenden. Diese Klammern deklarieren eine Klasse oder Methode als generischen Typ.

Was ist Hashtable?

Eine Hashtable ist eine Datenstruktur, die einen abstrakten Datentyp eines assoziativen Arrays implementiert, eine Struktur, die Schlüssel Werten zuordnen kann. Es ist kein generischer Datentyp. Verweisen Sie wie folgt auf ein Stück Code.

Abbildung 1: C#-Programm mit Hashtable

Im obigen Programm ist Zahlen ein Objekt vom Typ Hashtable. Der Hashtable werden Schlüssel-Wert-Paare hinzugefügt. Von Anweisung 15 bis 17 sind die Schlüssel vom Typ int und die Werte vom Typ string. In Anweisung 18 sind Schlüssel und Wert Zeichenfolgen. Eine Hashtable ist eine wöchentlich typisierte Datenstruktur. Daher kann der Programmierer der Hashtable Schlüssel und Werte jeglichen Typs hinzufügen.

Abbildung 2: Ausgabe des HashTable-Programms

Die Ausgabe des Programms ist wie oben. Die Hashtable druckt die Datensätze nicht in der Reihenfolge, in der die Elemente hinzugefügt wurden. Daher wird die eingefügte Reihenfolge nicht beibehalten.

Was ist ein Wörterbuch?

Ein Wörterbuch verwendet das Konzept von Hashtable. Es ist ein generischer Datentyp. Siehe untenstehendes Programm. name ist ein Objekt vom Typ Dictionary. Es verfügt über bestimmte Datentypen zum Speichern von Schlüsseln und Werten. Gemäß diesem Programm sind die generischen Typen definiert als. Daher sollten beim Hinzufügen von Elementen zum Wörterbuch sowohl Schlüssel als auch Werte vom Typ string sein.

Abbildung 3: C#-Programm mit Dictionary

Alle Elemente, die dem obigen Wörterbuch hinzugefügt wurden, haben Schlüssel- und Wertpaare vom Typ String. Das Drucken des Schlüssels und der Werte auf der Konsole ergibt eine Ausgabe ähnlich der in Abbildung 4. Beim Abrufen der Elemente aus dem Wörterbuch werden die Datensätze in derselben Reihenfolge gedruckt, in der die Elemente hinzugefügt wurden. Daher behält es die eingefügte Reihenfolge bei.

Abbildung 4: Ausgabe des Wörterbuchprogramms

Insgesamt ist Dictionary schnell in der Ausführung, bietet jedoch keine Thread-Sicherheit.

Unterschied zwischen Hashtable und Dictionary

Definition

Eine Hashtable ist eine Datenstruktur, die einen abstrakten Datentyp eines assoziativen Arrays implementiert, eine Struktur, die Schlüssel Werten zuordnen kann. Ein Dictionary ist eine auf Hashtable basierende Datenstruktur, die Werte auf Basis von Schlüsseln speichert.

Elemente hinzufügen

Darüber hinaus ist Hashtable eine schwach typisierte Datenstruktur. Daher kann der Programmierer der Hashtable Schlüssel und Werte eines beliebigen Objekttyps hinzufügen. Ein Dictionary ist eine stark typisierte Datenstruktur. (

Typ

Außerdem ist Hashtable nicht generisch, während Dictionary ein generischer Typ ist.

Ausführungsgeschwindigkeit

Darüber hinaus gibt es Boxen und Unboxing in Hashtable, aber nicht in Dictionary. Das Dictionary verbraucht minimalen Speicher und wird schneller ausgeführt als die Hashtable.

Abrufen der Elemente

Beim Abrufen der Elemente in der Hashtable wird die eingefügte Reihenfolge nicht beibehalten. Andererseits behält das Abrufen der Elemente aus einem Dictionary die eingefügte Reihenfolge bei.

Fadensicherheit

Beispielsyntax

Hashtable ht = new Hashtable();

Wörterbuch Wörterbuch = neues Wörterbuch ();.

Abschluss

Der Unterschied zwischen Hashtable und Dictionary besteht darin, dass die Hashtable eine schwach typisierte Datenstruktur ist, so dass es möglich ist, Schlüssel und Werte jeglichen Typs hinzuzufügen, während das Dictionary eine stark typisierte Datenstruktur ist, sodass es nur möglich ist, die Elemente hinzuzufügen, die die angegebenen Anforderungen erfüllen Datentypen für Schlüssel und Wert.

Referenz:

1. „C# Hashtable-Klasse.“ Www.tutorialspoint.com, Tutorials Point, 21. Juli 2018, hier verfügbar.2. „C#-Hashtable.“ Datentypen in C#, Tutorials Teacher. Hier erhältlich.3. „C#-Wörterbuch – Javatpoint.“ www.javatpoint.com, hier verfügbar.

Unterschied zwischen Hashtable und Dictionary