Verschil tussen hashtabel en woordenboek

Inhoudsopgave:

Anonim

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

Hashtable en woordenboek zijn twee hoofdgegevensstructuren. Ze kunnen allebei gegevens bevatten als sleutelwaardeparen. Een hashtabel of een woordenboek kan alleen unieke sleutels bevatten. Met de toets kan de programmeur een bepaalde waarde vinden of verwijderen. Hashtabel is niet sterk getypeerd. Daarom kan de programmeur elk element van een sleutel-waardepaar aan de hashtabel toevoegen. Aan de andere kant is het woordenboek sterk getypt. De programmeur moet de gegevenstypen van de sleutels en waarden specificeren. Het is niet mogelijk om elementen toe te voegen die niet voldoen aan de gegeven datatypes. Als de Dictionary bijvoorbeeld generiek type heeft, kan de programmeur alleen elementen toevoegen met int-typesleutels en stringtype-waarden.

Woordenboek, hashtabel, gegevensstructuren

Wat is een algemeen gegevenstype?

Een generiek gegevenstype is een gegevenstype waarmee de gebruiker klassen en methoden kan definiëren met tijdelijke aanduidingen. Compilers zoals C# kunnen de tijdelijke aanduidingen vervangen door een opgegeven gegevenstype tijdens het compileren. Het wordt gebruikt om klassen en methoden voor algemene doeleinden te maken. 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 hashtabel?

Een hashtabel is een gegevensstructuur die een associatief array-abstract gegevenstype implementeert, een structuur die sleutels aan waarden kan toewijzen. Het is geen generiek gegevenstype. Verwijs als volgt naar een stukje code.

Afbeelding 1: C#-programma met Hashtable

In het bovenstaande programma is getallen een object van het type Hashtable. Sleutel-waardeparen worden toegevoegd aan de hashtabel. Van instructie 15 tot 17 zijn de sleutels van het type int en zijn de waarden van het type string. In statement 18 zijn de sleutel en waarde strings. Een hashtabel is een wekelijks getypte datastructuur. Daarom kan de programmeur sleutels en waarden van elk type toevoegen aan de hashtabel.

Afbeelding 2: HashTable Programma-uitvoer

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

Wat is een woordenboek?

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

Afbeelding 3: C#-programma met Dictionary

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 vergelijkbaar met afbeelding 4. Als u de items uit Dictionary ophaalt, worden de records in dezelfde volgorde afgedrukt als waarin de elementen zijn toegevoegd. Daarom handhaaft het de ingevoegde volgorde.

Afbeelding 4: Uitvoer woordenboekprogramma

Over het algemeen is Dictionary snel in uitvoering, maar biedt het geen threadveiligheid.

Verschil tussen hashtabel en woordenboek

Definitie

Een hashtabel is een gegevensstructuur die een associatief array-abstract gegevenstype implementeert, een structuur die sleutels aan waarden kan toewijzen. Een Dictionary is een op Hashtable gebaseerde datastructuur die waarden opslaat op basis van sleutels.

Elementen toevoegen

Verder is Hashtable een zwak getypte datastructuur. Daarom kan de programmeur sleutels en waarden van elk objecttype aan de hashtabel toevoegen. Een Dictionary is een sterk getypte datastructuur. (

Type

Hashtable is ook niet generiek, terwijl Dictionary een generiek type is.

Uitvoeringssnelheid

Daarnaast is er boksen en unboxen in Hashtable maar niet in Dictionary. De Dictionary verbruikt minimaal geheugen en wordt sneller uitgevoerd dan de hashtabel.

De elementen ophalen

Het ophalen van de elementen in de hashtabel behoudt de ingevoegde volgorde niet. Aan de andere kant handhaaft het ophalen van de elementen uit een Dictionary de ingevoegde volgorde.

Draadveiligheid

Voorbeeldsyntaxis

Hashtabel ht = nieuwe Hashtabel();

Woordenboekwoordenboek = nieuw Woordenboek();.

Conclusie

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

Verwijzing:

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

Verschil tussen hashtabel en woordenboek