Verschil tussen hashtabel en woordenboek

De grootste verschil tussen Hashtable en Dictionary is dat het Hashtable is een zwak getypte gegevensstructuur, dus het is mogelijk om sleutels en waarden van elk type toe te voegen, terwijl het woordenboek een sterk getypeerde gegevensstructuur is, dus het is alleen mogelijk om de elementen toe te voegen die voldoen aan de opgegeven gegevenstypen voor zowel sleutel als waarde.

Hashtable en dictionary zijn twee hoofddatastructuren. Beide kunnen gegevens als sleutelwaardeparen bevatten. Een hash-tabel of een woordenboek kan alleen unieke sleutels bevatten. De programmeur kan een specifieke waarde vinden of verwijderen met behulp van de toets. Hasjetabel is niet sterk getypt. Daarom kan de programmeur elk element van het sleutel / waarde-paar toevoegen aan de hashtabel. Aan de andere kant is het woordenboek sterk getypeerd. De programmeur moet de gegevenstypen van de sleutels en waarden specificeren. Het is niet mogelijk om elementen toe te voegen die niet aan de gegeven gegevenstypen voldoen. Als het woordenboek bijvoorbeeld een generiek type heeft , het programmeerapparaat kan alleen elementen toevoegen met int-type sleutels en stringtype-waarden.

Key Areas Covered

1. Wat is Generiek gegevenstype
     - Definitie
2. Wat is Hashtable
     - Definitie, functionaliteit
3. Wat is woordenboek
     - Definitie, functionaliteit
4. Verschil tussen hashtabel en woordenboek
     - Vergelijking van belangrijke verschillen

Sleutelbegrippen

Woordenboek, hash-tabel, gegevensstructuren

Wat is Generiek gegevenstype

Een generiek gegevenstype is een gegevenstype waarmee de gebruiker klassen en methoden met plaatsaanduidingen kan definiëren. Compilers zoals C # kunnen tijdens het compileren de tijdelijke aanduidingen vervangen door het opgegeven gegevenstype. Het wordt gebruikt om klassen en methoden voor algemene doeleinden te creëren. Bij het definiëren van een generieke klasse moet de programmeur punthaken gebruiken (<>). Deze haakjes verklaren een klasse of methode als generiek type.

Wat is Hashtable

Een hashtabel is een gegevensstructuur die een abstract gegevenstype met associatieve array implementeert, een structuur die sleutel tot waarden kan toewijzen. Het is geen generiek gegevenstype. Verwijs een stuk code als volgt.

Figuur 1: C # -programma met hashtabel

In het bovenstaande programma, getallen is een object van het type Hashtable. Key-value-paren worden toegevoegd aan de hashtabel. Van statement 15 tot 17 zijn de sleutels van het type int en de waarden zijn van het type string. In statement 18 zijn de sleutel en de waarde strings. Een hashtabel is een wekelijkse getypte gegevensstructuur. Daarom kan de programmeur sleutels en waarden van elk type toevoegen aan de hashtabel.

Figuur 2: Uitvoer van het HashTable-programma

De uitvoer van het programma is zoals hierboven. De hashtabel drukt de records niet af volgens de volgorde waarin de elementen zijn toegevoegd. Daarom wordt de ingevoegde volgorde niet behouden.

Wat is een woordenboek

Een woordenboek gebruikt het concept van hashtabel. Het is een generiek gegevenstype. Raadpleeg het onderstaande programma. namen is een woordenboektype-object. Het heeft specifieke gegevenstypen om op te slaan voor sleutels en waarden. Volgens dit programma worden de generieke types gedefinieerd als . Daarom moeten bij het toevoegen van elementen aan het woordenboek, zowel sleutels als waarden van het type string zijn.

Figuur 3: C # -programma met woordenboek

Alle elementen die aan het bovenstaande woordenboek zijn toegevoegd, hebben sleutel- en waardeparen van het type String. Het afdrukken van de sleutel en waarden naar de console geeft een uitvoer gelijk aan figuur 4. Het ophalen van de items uit het woordenboek zal de records in dezelfde volgorde afdrukken als de elementen werden toegevoegd. Daarom onderhoudt het de ingevoegde volgorde.

Figuur 4: Uitvoer van woordenboekprogramma's

Over het algemeen is Dictionary snel in uitvoering, maar het biedt geen veiligheid voor threads.

Verschil tussen hashtabel en woordenboek

Definitie

Een hashtabel is een gegevensstructuur die een abstract gegevenstype met associatieve array implementeert, een structuur die sleutel tot waarden kan toewijzen. Een woordenboek is een gegevensstructuur op basis van hashtabel die waarden opslaat op basis van sleutels.

Elementen toevoegen

Bovendien is Hashtable een zwak getypte gegevensstructuur. Daarom kan de programmeur sleutels en waarden van elk objecttype toevoegen aan de hashtabel. Een woordenboek is een sterk getypte gegevensstructuur. (

Type

Hashtable is ook niet generiek, terwijl Dictionary generiek is.

Uitvoersnelheid

Daarnaast is er boksen en unboxen in Hashtable maar niet in Dictionary. Het woordenboek verbruikt minimaal geheugen en voert sneller uit dan de hashtabel.

De elementen ophalen

Het ophalen van de elementen in de hashtabel houdt de ingevoegde volgorde niet in stand. Aan de andere kant behoudt het ophalen van de elementen uit een woordenboek de ingevoegde volgorde.

Thread-veiligheid

Bovendien biedt hashtable meer draadveiligheid. Het ondersteunt threads met meerdere lezers en een enkele writer-thread. Woordenboek biedt geen draadveiligheid. Om draadveiligheid te implementeren, moet de programmeur zijn eigen gesynchroniseerde code schrijven.

Syntaxis van het voorbeeld

Hashtable ht = new Hashtable ();

Woordenboek woordenboek = nieuw woordenboek();.

Conclusie

Het verschil tussen Hashtable en Dictionary is dat de Hashtable een zwak getypte datastructuur is, dus het is mogelijk om sleutels en waarden van elk type toe te voegen, terwijl het woordenboek een sterk getypeerde datastructuur is, dus het is alleen mogelijk om de elementen toe te voegen die voldoen aan de gespecificeerde gegevenstypen voor zowel sleutel als waarde.

Referentie:

1. "C # Hashtable Class." Www.tutorialspoint.com, Tutorials Point, 21 juli 2018, hier beschikbaar.
2. "C # Hashtable." Gegevenstypen in C #, Tutorials Docent. Beschikbaar Hier.
3. "C # Dictionary - Javatpoint." Www.javatpoint.com, hier beschikbaar.