Ero hashtablen ja sanakirjan välillä

Sisällysluettelo:

Anonim

The tärkein ero Hashtablen ja Dictionaryn välillä on, että Hashtable on heikosti kirjoitettu tietorakenne, joten on mahdollista lisätä minkä tahansa tyyppisiä avaimia ja arvoja, kun taas sanakirja on voimakkaasti kirjoitettu tietorakenne, joten on mahdollista lisätä vain elementtejä, jotka täyttävät määritetyt tietotyypit sekä avaimelle että arvolle.

Hashtable ja sanakirja ovat kaksi tärkeintä tietorakennetta. Molemmat voivat pitää tietoja avainarvopareina. Hashtable tai sanakirja voi sisältää vain yksilöllisiä avaimia. Ohjelmoija voi löytää tai poistaa tietyn arvon näppäimellä. Hashtablea ei kirjoiteta voimakkaasti. Siksi ohjelmoija voi lisätä minkä tahansa avain-arvo-parin elementin Hashtableen. Toisaalta sanakirja on voimakkaasti kirjoitettu. Ohjelmoijan tulee määrittää avainten ja arvojen tietotyypit. Ei ole mahdollista lisätä elementtejä, jotka eivät täytä annettuja tietotyyppejä. Jos esimerkiksi sanakirjassa on yleinen tyyppi, ohjelmoija voi lisätä vain elementtejä, joissa on int -tyypin avaimet ja merkkijonotyypin arvot.

Sanakirja, hashtable, tietorakenteet

Mikä on yleinen tietotyyppi

Yleinen tietotyyppi on tietotyyppi, jonka avulla käyttäjä voi määrittää luokkia ja menetelmiä paikkamerkillä. Kääntäjät, kuten C#, voivat korvata paikkamerkit määrätyllä tietotyypillä käännöshetkellä. Sitä käytetään luomaan yleiskäyttöisiä luokkia ja menetelmiä. Yleisluokkaa määritettäessä ohjelmoijan on käytettävä kulmasulkeita (). Nämä hakasulkeet ilmoittavat luokan tai menetelmän yleiseksi tyypiksi.

Mikä on Hashtable

Hashtable on tietorakenne, joka toteuttaa assosiatiivisen taulukon abstraktin tietotyypin, rakenteen, joka voi yhdistää avaimen arvoihin. Se ei ole yleinen tietotyyppi. Katso koodinpätkä seuraavasti.

Kuva 1: C# -ohjelma, jossa on hashtable

Yllä olevassa ohjelmassa numerot ovat Hashtable -tyyppisiä objekteja. Avain-arvo-parit lisätään hashtableen. Lauseessa 15–17 avaimet ovat tyyppiä int ja arvot ovat merkkijonoa. Lausunnossa 18 avain ja arvo ovat merkkijonoja. Hashtable on viikoittain kirjoitettu tietorakenne. Siksi ohjelmoija voi lisätä minkä tahansa tyyppisiä avaimia ja arvoja Hashtableen.

Kuva 2: HashTable Program -lähtö

Ohjelman tulos on kuten edellä. Hashtable ei tulosta tietueita järjestyksessä, jossa elementit lisättiin. Siksi se ei säilytä lisättyä järjestystä.

Mikä on sanakirja

Sanakirja käyttää Hashtable -käsitettä. Se on yleinen tietotyyppi. Katso alla oleva ohjelma. names on Dictionary -tyyppinen objekti. Siinä on erityisiä tietotyyppejä, jotka tallennetaan avaimille ja arvoille. Tämän ohjelman mukaan geneeriset tyypit määritellään seuraavasti. Siksi, kun lisäät elementtejä sanakirjaan, sekä avainten että arvojen on oltava tyyppiä merkkijono.

Kuva 3: C# -ohjelma sanakirjan kanssa

Kaikilla yllä olevaan sanakirjaan lisätyillä elementeillä on merkkijono -tyyppiset avain- ja arvoparit. Avaimen ja arvojen tulostaminen konsoliin antaa kuvan 4 kaltaisen tuloksen. Kohteiden noutaminen sanakirjasta tulostaa tietueet samassa järjestyksessä kuin elementit lisättiin. Siksi se ylläpitää lisättyä järjestystä.

Kuva 4: Sanakirjaohjelman lähtö

Kaiken kaikkiaan sanakirja on nopea, mutta se ei tarjoa langan turvallisuutta.

Ero hashtablen ja sanakirjan välillä

Määritelmä

Hashtable on tietorakenne, joka toteuttaa assosiatiivisen taulukon abstraktin tietotyypin, rakenteen, joka voi yhdistää avaimen arvoihin. Sanakirja on Hashtable -pohjainen tietorakenne, joka tallentaa arvot avainten perusteella.

Elementtien lisääminen

Lisäksi Hashtable on heikosti kirjoitettu tietorakenne. Siksi ohjelmoija voi lisätä Hashtable -tiedostoon minkä tahansa objektityypin avaimia ja arvoja. Sanakirja on vahvasti kirjoitettu tietorakenne. (

Tyyppi

Hashtable ei myöskään ole yleinen, kun taas sanakirja on yleinen tyyppi.

Suoritusnopeus

Lisäksi hashtableissa on nyrkkeilyä ja purkamista, mutta ei sanakirjassa. Sanakirja kuluttaa minimaalisesti muistia ja suorittaa nopeammin kuin hashtable.

Elementtien hakeminen

Hashtable -elementin noutaminen ei säilytä lisättyä järjestystä. Toisaalta elementtien noutaminen sanakirjasta säilyttää lisätyn järjestyksen.

Langan turvallisuus

Esimerkki syntaksista

Hashtable ht = uusi Hashtable ();

Sanakirjasanakirja = uusi sanakirja ();.

Johtopäätös

Ero Hashtablen ja Dictionaryn välillä on, että Hashtable on heikosti kirjoitettu tietorakenne, joten on mahdollista lisätä minkä tahansa tyyppisiä avaimia ja arvoja, kun taas Sanakirja on voimakkaasti kirjoitettu tietorakenne, joten on mahdollista lisätä vain määritettyjä elementtejä tietotyypit sekä avaimelle että arvolle.

Viite:

1. "C# Hashtable Class". Www.tutorialspoint.com, Tutorials Point, 21. heinäkuuta 2018, saatavana täältä. “C# hashtable.” Tietotyypit C#: ssa, opetusohjelmat Opettaja. Saatavana täältä 3. "C# Sanakirja - Javatpoint." Www.javatpoint.com, saatavilla täältä.

Ero hashtablen ja sanakirjan välillä