Rozdiel medzi Hashtable a slovníkom

Obsah:

Anonim

The hlavný rozdiel medzi Hashtable a Dictionary je, že Hashtable je slabo typovaná dátová štruktúra, takže je možné pridať kľúče a hodnoty akéhokoľvek typu, zatiaľ čo slovník je silne typizovanou dátovou štruktúrou, takže je možné pridať iba prvky, ktoré vyhovujú zadaným dátovým typom, pre kľúč aj pre hodnotu.

Hashtable a slovník sú dve hlavné dátové štruktúry. Oba môžu uchovávať údaje ako páry kľúč - hodnota. Hashtable alebo slovník môžu obsahovať iba jedinečné kľúče. Programátor môže pomocou kľúča nájsť alebo odstrániť konkrétnu hodnotu. Hashtable nie je silne napísaný. Programátor preto môže do Hashtable pridať ľubovoľný prvok z páru kľúč-hodnota. Na druhej strane je slovník silne napísaný. Programátor by mal špecifikovať dátové typy kľúčov a hodnoty. Nie je možné pridať prvky, ktoré nevyhovujú daným dátovým typom. Ak má napríklad Slovník generický typ, programátor môže pridávať iba prvky pomocou klávesov typu int a hodnôt typu reťazca.

Slovník, Hashtable, Dátové štruktúry

Čo je to generický typ údajov

Generický typ údajov je typ údajov, ktorý používateľovi umožňuje definovať triedy a metódy pomocou zástupných symbolov. Kompilátory, ako napríklad C#, môžu v čase kompilácie nahradiť zástupné symboly zadaným typom údajov. Používa sa na vytváranie tried a metód na všeobecné účely. Pri definovaní generickej triedy by mal programátor použiť uhlové zátvorky (). Tieto zátvorky deklarujú triedu alebo metódu ako generický typ.

Čo je Hashtable

Hashtable je dátová štruktúra, ktorá implementuje abstraktný dátový typ asociatívneho poľa, štruktúru, ktorá môže mapovať kľúč k hodnotám. Nejde o generický typ údajov. Odošlite kúsok kódu nasledovne.

Obrázok 1: Program C# s programom Hashtable

Vo vyššie uvedenom programe sú čísla objektom typu Hashtable. Páry kľúč-hodnota sa pridajú do skrinky. Od príkazu 15 do 17 sú kľúče typu int a hodnoty sú typu string. Vo výkaze 18 sú kľúč a hodnota reťazce. Hashtable je týždenná typizovaná dátová štruktúra. Programátor preto môže do Hashtable pridať kľúče a hodnoty akéhokoľvek typu.

Obrázok 2: Výstup programu HashTable

Výstup programu je uvedený vyššie. Hashtable nevytlačí záznamy podľa poradia, v ktorom boli prvky pridané. Preto neudržiava vložené poradie.

Čo je to slovník

Slovník používa koncept Hashtable. Ide o generický typ údajov. Pozrite sa na nižšie uvedený program. names je objekt typu Slovník. Má špecifické typy údajov, ktoré je možné uložiť pre kľúče a hodnoty. Podľa tohto programu sú generické typy definované ako. Pri pridávaní prvkov do slovníka by preto kľúče aj hodnoty mali mať typ string.

Obrázok 3: Program C# so slovníkom

Všetky prvky pridané do vyššie uvedeného slovníka majú páry kľúčov a hodnôt typu String. Vytlačením kľúča a hodnôt do konzoly získate výstup podobný obrázku 4. Pri načítaní položiek zo slovníka sa záznamy vytlačia v rovnakom poradí, v akom boli pridané prvky. Preto zachováva vložené poradie.

Obrázok 4: Výstup slovníkového programu

Celkovo sa slovník rýchlo vykonáva, ale neposkytuje bezpečnosť vlákna.

Rozdiel medzi Hashtable a slovníkom

Definícia

Hashtable je dátová štruktúra, ktorá implementuje abstraktný dátový typ asociatívneho poľa, štruktúru, ktorá môže mapovať kľúč k hodnotám. Slovník je dátová štruktúra založená na Hashtable, ktorá ukladá hodnoty na základe kľúčov.

Pridanie prvkov

Hashtable je navyše slabo typovanou dátovou štruktúrou. Programátor preto môže do Hashtable pridať kľúče a hodnoty akéhokoľvek typu objektu. Slovník je silne napísaná dátová štruktúra. (

Napíšte

Hashtable tiež nie je generický, zatiaľ čo Dictionary je generický typ.

Rýchlosť vykonávania

Okrem toho existuje box a unboxing v Hashtable, ale nie v Slovníku. Slovník zaberá minimálnu pamäť a pracuje rýchlejšie ako Hashtable.

Získavanie prvkov

Načítanie prvkov v Hashtable neudrží vložené poradie. Na druhej strane načítanie prvkov zo slovníka zachová vložené poradie.

Bezpečnosť závitu

Príklad syntaxe

Hashtable ht = nový Hashtable ();

Slovník slovníka = nový slovník ();.

Záver

Rozdiel medzi Hashtable a Dictionary je v tom, že Hashtable je slabo typovaná dátová štruktúra, takže je možné pridať kľúče a hodnoty akéhokoľvek typu, zatiaľ čo slovník je silne typizovaná dátová štruktúra, takže je možné pridať iba prvky, ktoré spĺňajú zadanú hodnotu. dátové typy pre kľúč aj hodnotu.

Referencia:

1. „Trieda Hashtable C#“. Www.tutorialspoint.com, Tutorials Point, 21. júla 2018, dostupné tu.2. "C# Hashtable." Dátové typy v C#, Učiteľ výukových programov. K dispozícii tu.3. "Slovník C# - Javatpoint." Www.javatpoint.com, k dispozícii tu.

Rozdiel medzi Hashtable a slovníkom