Ero HashMap: n ja Java: n hashtable -sovellusten välillä
Sisältö
HashMap ja Hashtable, molemmat ovat käytetty edustamaan esineiden ryhmä jotka ovat edustettuina
Katsotaanpa alla olevaa vertailutaulua saadaksesi lisätietoja HashMapin ja Hashtablen eroista.
- Vertailutaulukko
- Määritelmä
- Keskeiset erot
- yhtäläisyyksiä
- johtopäätös
Vertailutaulukko
Vertailun perusteet | HashMap | Hashtable |
---|---|---|
Toteuta / laajenna | HashMap-luokka toteuttaa Kartta-käyttöliittymän ja laajentaa AbstractMap-luokkaa. | Hashtable ulottuu Dictionary Legacy -luokan, mutta se on suunniteltu uudelleen ja nyt se toteuttaa myös Kartta-käyttöliittymän. |
tahdistus | HashMap ei ole synkronoitu, joten HashMap-objektia ei ole kierteitetty turvallisesti. | Hashtable on synkronoitu, joten Hashtable-objekti on säiettä suojaava. |
Avaimet / arvo | Avain voi palauttaa nollan vain kerran, mutta arvo voi palauttaa nollaksi monta kertaa. | Avain ei voi palauttaa nollaa, koska sitä käytetään hash-koodin hankkimiseksi, jota käytetään hash-taulukon indeksinä, eikä arvo voi palauttaa nollaa. |
Oletusarvo | HashMapin oletusarvoinen alkuperäinen kapasiteetti on 16. | Hashtablen oletusarvoinen alkuperäinen kapasiteetti on 11. |
liikkumisesta | Iterator ohittaa HashMapin. | Kuten Map-luokka, Hashtable ei myöskään tue suoraan Iteratoria liikkumiseen ja siten käyttää Enumeratoria. |
Määritelmä HashMap
HashMap on luokka, joka toteuttaa Kartta käyttöliittymä ja laajentaa AbstractMap luokka käyttää hash-taulukkoa. HashMap-objekti viittaa kokoelmaan / joukkoon / * K edustaa avainta ja V edustaa arvoa * / luokka HashMap Ensimmäinen rakentaja on oletuskonstruktori, joka alustaa HashMapin tyhjän objektin oletuskapasiteetilla 16 ja oletuksena täyttösuhteella 0,75. Toinen rakentaja alustaa hash-kartan arvolla m. Kolmas rakentaja luo hajautuskartan, jonka alkuperäinen kapasiteetti vastaa argumentin “kapasiteetti” annettua arvoa. Neljäs rakentaja alustaa hash-kartan kapasiteetilla ja täyttösuhteella, joka annetaan parametreissa. Opi nyt nyt syöttämään merkinnät hajakarttaan. Hashmap hm = uusi Hashmap (); hm.put ("Ajay", 275); hm.put ("Vijay", 250); hm.put ("Jonny", 150); hm.put ("Jordan", 200); System.out.ln (hm); / * lähtö * / {Vijay = 250, Jonny = 150, Ajay = 275, Jordania = 200} Yllä olevassa koodissa voit nähdä, että olen luonut tyhjän HashMap-objektin hm oletusarvoisella alkuperäisellä kapasiteetilla ja täyttösuhteella Sitten lisäsin neljä merkintää hash-karttaan put (K, V) -menetelmällä, joka kuvaa avaimen arvoon. Voit huomata, että merkintöjä ei editoida niiden syöttämässä järjestyksessä, koska lisäysjärjestys ei ole kiinteä. Mieti nyt tapausta, jossa sinulla on jo merkintä Hashtable on luokka, joka laajentaa Sanakirja luokka, joka on perintöluokka ja joka on suunniteltu uudelleen toteuttamaan Kartta käyttöliittymä. Hashtable käyttää hash-taulukkoa sen tietorakenteena. Hashtable on samanlainen kuin HashMap, koska tässä myös Hashtable-objekti viittaa merkintöjen kokoelmaan, jossa jokainen merkintä on pari / * K määrittää avaimen ja V määrittää avaimeen * / luokan Hashtable liittyvän arvon Yllä olevassa koodissa ensimmäinen konstruktori on oletuskonstruktori, joka luo tyhjän objektin luokan Hashtable, sen oletuskoko on 11 ja oletuksena täyttösuhde on 0,75. Toinen rakentaja luo hash-taulukon, jonka koko vastaa parametrissa ”size” annettua arvoa. Kolmas rakentaja luo hash-taulukon, jonka koko ja täyttösuhde ovat parametrissa. Neljäs rakentaja alustaa hash-taulukon arvolla m. Opi nyt nyt kuinka Hashtable ht = uusi hashtable (); ht.put (uusi hashCode (2), 275); ht.put (uusi hash-koodi (12), 250); ht.put (uusi hash-koodi (16), 150); ht.put (uusi hashCode (8), 200); System.out.ln (ht); / * lähtö * / {12 = 250, 16 = 150,2 v = 275, 8 = 200} Yllä olevaan koodiin luin tyhjän Hashtable-objektin ja lisäsin neljä merkintää put () -menetelmällä. Inside put -menetelmää kutsusin hashCode (), joka laskee ja palauttaa hash-koodin arvon, joka toimii hakemistoarvona tulo-ololle. Kuten näette, en maininnut hash-taulukon kokoa, joten oletuksena se on 11. Tässäkään lisäysjärjestystä ei säilytetä, ja siksi, kun ed-merkinnät eivät esiintyneet peräkkäin, se syötettiin. HashMap on suorituskykyä parempi, koska sen objektit ovat synkronoimattomia ja useat ketjut voivat toimia sillä samanaikaisesti, joten se on nopeampi kuin Hashtable.
Määritelmä Hashtable
yhtäläisyyksiä:
johtopäätös: