Erinevus HashMapi ja Java-vormingus hashtable'i vahel
Sisu
HashMap ja Hashtable, mõlemad on tähistatud objektide rühm mis on esindatud
Vaadakem allpool toodud võrdlustabelit, et saada veel mõned erinevused HashMapi ja Hashtable'i vahel.
- Võrdlusdiagramm
- Definitsioon
- Peamised erinevused
- Sarnasused
- Järeldus
Võrdlusdiagramm
Võrdluse alus | HashMap | Hämmastav |
---|---|---|
Rakendage / laiendage | HashMap klass rakendab Map liidest ja laiendab AbstractMap klassi. | Hashtable laiendab Dictionary Legacy klassi, kuid see on ümber kujundatud ja nüüd rakendab see ka Mapsi liidest. |
Sünkroonimine | HashMap on sünkroniseerimata ja seetõttu pole HashMap-i objekt keermestatud turvaliselt. | Hashtable on sünkroonitud ja seetõttu on Hashtable objekt lõimekindel. |
Klahvid / väärtus | Klahv saab nulli tagastada ainult üks kord, kuid väärtus võib nulli tagastada suvalise aja jooksul. | Võti ei saa nulli tagastada, kuna seda kasutatakse räsikoodi saamiseks, mida kasutatakse räsitabeli indeksina, samuti ei saa väärtus tagastada nulli. |
Algne vaikemaht | HashMapi algne vaikemaht on 16. | Hashtable'i algne vaikemaht on 11. |
Läbivad | HashMapist saab mööda Iterator. | Nagu Map klass, ei toeta ka Hashtable Iteraatorit otse liikumiseks ja seetõttu kasutab ta Enumeratorit. |
Määratlus HashMap
HashMap on klass, mis rakendab Kaart liides ja laiendab AbstractMap klass kasutab räsitabelit. HashMapi objekt viitab kogumikule / komplektile / * K tähistab võtit ja V tähistab väärtust * / klass HashMap Esimene konstruktor on vaikekonstruktor, mis initsialiseerib HashMapi tühja objekti vaikemisi mahtuvusega 16 ja täitmise suhtega 0,75. Teine konstruktor initsialiseerib räsikaardi väärtusega m. Kolmas konstruktor loob räsikaardi, mille algne maht vastab argumendis “maht” esitatud väärtusele. Neljas konstruktor lähtestab räsi kaardi parameetrites esitatud mahutavuse ja täitmissuhtega. andke meile nüüd teada, kuidas sisestusi räsikaardile sisestada. Hashmap hm = uus Hashmap (); hm.put ("Ajay", 275); hm.put ("Vijay", 250); hm.put ("Jonny", 150); hm.put ("Jordan", 200); System.out.ln (hm); / * väljund * / {Vijay = 250, Jonny = 150, Ajay = 275, Jordaania = 200} Ülaltoodud koodi korral näete, et ma lõin tühja objekti HashMap hm algse algmahu ja vaikimisi täitmise suhtega. Seejärel lisasin räsikaardile neli sisestust, kasutades put (K, V) meetodit, mis kaardistab võtme väärtuse. Võite jälgida, et sisestusi ei redigeerita järjestuses, kus neid söödate, kuna sisestamise järjekord pole fikseeritud. Nüüd kaaluge juhtumit, kus teil on juba kanne Hashtable on klass, mis laiendab Sõnaraamat klass, mis on pärandklass ja mille ümberkujundamine toimub Kaart liides. Rämpspostitabel kasutab andmestruktuurina räsitabelit. Hashtable on sarnane HashMapiga, kuna ka siin tähistab Hashtable objekt kirjete kogumit, kus iga kirje on paar / * K täpsustab võtit ja V täpsustab võtmega * / class Hashtable seotud väärtuse Ülalolevas koodis on esimene konstruktor vaikimisi kasutatav konstruktor, mis loob klassi Hashtable tühja objekti, selle vaikesuurus on 11 ja vaikese täitmise suhe 0,75. Teine konstruktor loob räsitabeli, mille suurus vastab parameetri „suurus” väärtusele. Kolmas konstruktor loob räsitabeli parameetris esitatud suuruse ja täitussuhtega. Neljas konstruktor lähtestab räsitabeli väärtusega m. Nüüd õppige, kuidas sisestada Hashtable ht = new hashtable (); ht.put (uus hashCode (2), 275); ht.put (uus hashCode (12), 250); ht.put (uus hashCode (16), 150); ht.put (uus hashCode (8), 200); System.out.ln (ht); / * väljund * / {12 = 250, 16 = 150,2y = 275, 8 = 200} Ülalolevas koodis lõin tühja objekti Hashtable ja lisasin neli sisestust, kasutades meetodit put (). Inside put meetodil kutsusin hashCode (), mis arvutab ja tagastab räsikoodi väärtuse, mis toimib sisestusobjekti indeksväärtusena. Nagu näete, ei maininud ma räsitabeli suurust, nii et vaikimisi on see 11. Siin ei säilitata ka sisestusjärjekorda ja seega, kui redigeeritud kirjed ei ilmunud jadas, söödeti. HashMap on jõudluses parem, kuna selle objektid pole sünkroniseeritud ja mitu lõime saavad sellel korraga töötada ning seega on see kiirem kui Hashtable.
Määratlus Hashtable
Sarnasused:
Järeldus: