Unterschied zwischen Hashtable und Dictionary

Das Hauptunterschied zwischen Hashtable und Dictionary ist das der Hashtable ist eine schwach typisierte Datenstruktur. Es ist möglich, Schlüssel und Werte eines beliebigen Typs hinzuzufügen, während das Dictionary eine stark typisierte Datenstruktur ist. Daher können nur die Elemente hinzugefügt werden, die die angegebenen Datentypen sowohl für den Schlüssel als auch für den Wert erfüllen.

Hashtable und Dictionary sind zwei Hauptdatenstrukturen. Beide können Daten als Schlüsselwertpaare enthalten. Eine Hashtable oder ein Wörterbuch kann nur eindeutige Schlüssel enthalten. Der Programmierer kann mit der Taste einen bestimmten Wert finden oder entfernen. Hashtable ist nicht stark typisiert. Daher kann der Programmierer der Hashtable ein beliebiges Element eines Schlüsselwertpaares hinzufügen. Auf der anderen Seite ist das Wörterbuch 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. Zum Beispiel, wenn das Wörterbuch einen generischen Typ hat , Der Programmierer kann nur Elemente mit int-Typschlüsseln und String-Typwerten hinzufügen.

Wichtige Bereiche

1. Was ist ein generischer Datentyp?
     - Definition
2. Was ist Hashtable?
     - Definition, Funktionalität
3. Was ist Wörterbuch?
     - Definition, Funktionalität
4. Unterschied zwischen Hashtable und Dictionary
     - Vergleich der wichtigsten Unterschiede

Schlüsselbegriffe

Wörterbuch, Hashtabelle, Datenstrukturen

Was ist ein generischer Datentyp?

Ein generischer Datentyp ist ein Datentyp, mit dem der Benutzer Klassen und Methoden anhand von Platzhaltern definieren kann. Compiler wie C # können die Platzhalter zur Kompilierzeit durch den angegebenen Datentyp ersetzen. Es wird verwendet, um allgemeine Klassen und Methoden zu erstellen. Bei der Definition 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 zu Werten zuordnen kann. Es ist kein generischer Datentyp. Beziehen Sie einen Code wie folgt.

Abbildung 1: C # -Programm mit Hashtable

Im obigen Programm, Zahlen ist ein Objekt vom Typ Hashtable. Schlüssel-Wert-Paare werden zur Hashtabelle 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 Hashtabelle ist eine wöchentlich typisierte Datenstruktur. Daher kann der Programmierer der Hashtabelle Schlüssel und Werte eines beliebigen Typs hinzufügen.

Abbildung 2: HashTable-Programmausgabe

Die Ausgabe des Programms ist wie oben. Die Hashtabelle 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 das untenstehende Programm. Namen ist ein Objekt vom Typ Dictionary. Es enthält bestimmte Datentypen, die für Schlüssel und Werte gespeichert werden sollen. Gemäß diesem Programm werden die generischen Typen als definiert . Beim Hinzufügen von Elementen zum Wörterbuch sollten daher sowohl Schlüssel als auch Werte vom Typ Zeichenfolge sein.

Abbildung 3: C # -Programm mit Dictionary

Alle dem obigen Wörterbuch hinzugefügten Elemente haben Schlüssel- und Wertepaare vom Typ String. Wenn Sie den Schlüssel und die Werte auf der Konsole ausdrucken, erhalten Sie eine Ausgabe ähnlich der in Abbildung 4. Wenn Sie die Elemente aus dem Wörterbuch abrufen, werden die Datensätze in der Reihenfolge gedruckt, in der die Elemente hinzugefügt wurden. Daher wird die eingefügte Reihenfolge beibehalten.

Abbildung 4: Ausgabe des Wörterbuchprogramms

Insgesamt ist Dictionary zwar 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 zu 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 Hashtabelle Schlüssel und Werte eines beliebigen Objekttyps hinzufügen. Ein Wörterbuch ist eine stark typisierte Datenstruktur. (

Art

Hashtable ist nicht generisch, während Dictionary generischer Typ ist.

Ausführungsgeschwindigkeit

Darüber hinaus gibt es Boxen und Unboxing in Hashtable, nicht jedoch in Dictionary. Das Wörterbuch verbraucht wenig Speicher und wird schneller ausgeführt als die Hashtabelle.

Elemente abrufen

Durch das Abrufen der Elemente in der Hashtable wird die eingefügte Reihenfolge nicht beibehalten. Durch das Abrufen der Elemente aus einem Wörterbuch bleibt die eingefügte Reihenfolge erhalten.

Fadensicherheit

Darüber hinaus bietet Hashtable mehr Threadsicherheit. Es unterstützt mehrere Reader-Threads und einen einzelnen Writer-Thread. Das Wörterbuch bietet keine Thread-Sicherheit. Um Thread-Sicherheit zu implementieren, sollte der Programmierer seinen eigenen synchronisierten Code schreiben.

Beispielsyntax

Hashtable ht = new Hashtable ();

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

Fazit

Der Unterschied zwischen Hashtable und Dictionary besteht darin, dass Hashtable eine schwach typisierte Datenstruktur ist. Daher können Schlüssel und Werte eines beliebigen Typs hinzugefügt werden, während das Dictionary eine stark typisierte Datenstruktur ist. Daher können nur die Elemente hinzugefügt werden, die die angegebenen Eigenschaften 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 verfügbar.
3. “C # Dictionary - Javatpoint”. Www.javatpoint.com, erhältlich hier.