Diferența dintre Hashtable și Dicționar

principala diferență între Hashtable și Dicționar este că Hashtable este o structură de date slab tastată, astfel încât este posibil să se adauge chei și valori de orice tip, în timp ce Dicționarul este o structură de date puternic tipată, astfel încât este posibilă adăugarea elementelor care satisfac tipurile de date specificate atât pentru cheie cât și pentru valoare.

Hashtable și dicționarul sunt două structuri principale de date. Ambele pot deține datele ca perechi de valori cheie. Un Hashtable sau un Dicționar poate conține numai chei unice. Programatorul poate găsi sau elimina o valoare specifică utilizând cheia. Hashtable nu este puternic tastat. Prin urmare, programatorul poate adăuga orice element de pereche cheie-valoare la Hashtable. Pe de altă parte, dicționarul este puternic tastat. Programatorul trebuie să specifice tipurile de date ale cheilor și valorilor. Nu este posibilă adăugarea elementelor care nu satisfac tipurile de date date. De exemplu, dacă Dicționarul are un tip generic , programatorul poate adăuga numai elemente cu taste tip int și valori de tip șir.

Domenii cheie acoperite

1. Ce este tipul generic de date
     - Definiție
2. Ce este Hashtable
     - Definiție, funcționalitate
3. Ce este dicționarul
     - Definiție, funcționalitate
4. Diferența dintre Hashtable și Dicționar
     - Compararea diferențelor cheie

Termeni cheie

Dicționar, Hashtable, Structuri de date

Ce este tipul generic de date

Un tip de date generic este un tip de date care permite utilizatorului să definească clase și metode cu substituenți. Compilatoare, cum ar fi C #, pot înlocui locașurile cu tipul specificat de date la momentul compilării. Se utilizează pentru a crea clase și metode cu scop general. La definirea unei clase generice, programatorul ar trebui să folosească paranteze unghiulare (<>). Aceste paranteze declară o clasă sau o metodă ca tip generic.

Ce este Hashtable

O hashtable este o structură de date care implementează un tip de date abstract de matrice asociativă, o structură care poate mapa cheia valorilor. Nu este un tip de date generic. Consultați o bucată de cod după cum urmează.

Figura 1: Program C # cu Hashtable

În programul de mai sus, numerele este un obiect tip Hashtable. Perechile cheie-valoare sunt adăugate la Hashtable. Din instrucțiunile 15 la 17, tastele sunt de tipul int și valorile sunt de tip string. În instrucțiunea 18, cheia și valoarea sunt șiruri de caractere. Un Hashtable este o structură dată de date săptămânal. Prin urmare, programatorul poate adăuga chei și valori de orice tip la Hashtable.

Figura 2: ieșire program HashTable

Rezultatul programului este cel de mai sus. Hashtable nu imprimă înregistrările în ordinea în care elementele au fost adăugate. Prin urmare, nu menține ordinea inserată.

Ce este un dicționar

Un dicționar utilizează conceptul de Hashtable. Este un tip de date generic. Consultați programul de mai jos. numele este un obiect tip dictionar. Are tipuri de date specifice pentru stocarea cheilor și valorilor. Conform acestui program, tipurile generice sunt definite ca . Prin urmare, atunci când adăugați elemente în dicționar, ambele chei și valori ar trebui să fie de tip șir.

Figura 3: Programul C # cu dicționar

Toate elementele adăugate în dicționarul de mai sus au perechi cheie și valoare de tip String. Imprimarea cheii și a valorilor spre consolă va da o ieșire asemănătoare celei din figura 4. Recuperarea elementelor din dicționar va imprima înregistrările în aceeași ordine în care au fost adăugate elementele. Prin urmare, menține ordinea introdusă.

Figura 4: Rezultatul programului de dicționare

În ansamblu, Dicționarul este rapid în execuție, dar nu asigură siguranța firelor.

Diferența dintre Hashtable și Dicționar

Definiție

O hashtable este o structură de date care implementează un tip de date abstract de matrice asociativă, o structură care poate mapa cheia valorilor. Un Dicționar este o structură de date bazată pe Hashtable care stochează valori pe baza cheilor.

Adăugarea elementelor

În plus, Hashtable este o structură de date slabă. Prin urmare, programatorul poate adăuga chei și valori ale oricărui tip de obiect la Hashtable. Un Dicționar este o structură de date puternic tastată. (

Tip

De asemenea, Hashtable nu este generic în timp ce Dicționarul este tip generic.

Viteză de execuție

În plus, există box și unboxing în Hashtable, dar nu în dicționar. Dicționarul consumă memorie minimă și execută mai repede decât Hashtable.

Preluarea elementelor

Preluarea elementelor din tabela Hash nu menține ordinea inserată. Pe de altă parte, preluarea elementelor dintr-un dicționar menține ordinea inserată.

Securitatea filetului

În plus, Hashtable oferă mai multă siguranță pentru fire. Acesta acceptă mai multe fire de cititor și un singur fir de scriere. Dicționarul nu oferă siguranță pentru fire. Pentru a implementa siguranța firului, programatorul ar trebui să scrie propriul cod sincronizat.

Exemplu de sintaxă

Hashtable ht = nou Hashtable ();

Dicţionar dicționar = dicționar nou();.

Concluzie

Diferența dintre Hashtable și Dictionary este că Hashtable este o structură de date slab tastată, astfel încât este posibil să se adauge chei și valori de orice tip în timp ce Dicționarul este o structură de date puternic tipată, astfel încât este posibilă adăugarea elementelor care îndeplinesc cerințele specificate tipuri de date atât pentru cheie, cât și pentru valoare.

Referinţă:

1. "C # Clasa Hashtable". Www.tutorialspoint.com, Tutorials Point, 21 iulie 2018, Disponibil aici.
2. "C # Hashtable." Tipuri de date în C #, Tutoriale Profesor. Disponibil aici.
3. "C # Dictionary - Javatpoint". Www.javatpoint.com, disponibil aici.