Peamised erinevused: Arvutiteaduses viitab hashTable või hashMap andmestruktuurile, mis seob võtmed (nimed) väärtustega (atribuutidega). Java puhul on kahe olulise erinevuse vahel mõned olulised erinevused: HashTable on sünkroniseeritud ja HashMap on sünkroniseerimata. HashTable ei võimalda nullklahve. HashMap võimaldab siiski ühe null-võtme ja mis tahes arvu nullväärtusi.
HashMap ja hashTable on Java-kollektsiooni osad. Nad kasutavad objektide salvestamiseks võtmeväärtuse paare. Nad mõlemad jagavad mõningaid sarnasusi, näiteks nii java.util.Map-i liidese rakendamine kui ka mõlemad töötavad põhimõtte „hashing” alusel. Siiski, kui me viitame neile Java programmeerimiskeele kontekstis, on nende vahel palju erinevusi.
Väärtuse salvestamiseks ja allalaadimiseks kasutatakse klahvi hashTable. Selleks peab võti olema unikaalne. Tabelit, mida kasutatakse võtme- ja väärtuspaaride salvestamiseks, nimetatakse räsifunktsiooni tabelis. Võrdlustabel on moodustatud, kasutades võtmeid peitvat algoritmi. Seda räsifunktsiooni kasutatakse numbrite määramiseks sisendandmetele ja seejärel salvestatakse andmed massiindeksina, mis vastab arvutatud või hinnatud numbrile.
HashMapi ja HashTable'i võrdlus:
HashMap | HashTable | |
Sünkroonimine | See on sünkroniseerimata | See on sünkroonitud (lõime ohutu) |
Null väärtused | See lubab nullväärtusi kui võtit ja väärtust | See ei võimalda tühikuid |
Sissejuhatus javas | Java versioon 1.2 | Java arenduskomplekti esimene versioon |
Toimivus | Võrreldes parem | Võrreldes vaesed |
Laiendab | See laiendab AbstractMap klassi | See laiendab sõnaraamatuklassi, mis on üsna vana |
Nuppude sisestamine | Iteraatorit kasutatakse võtmete kordamiseks | Klahvide itereerimiseks kasutatakse loendamisliidest |
Rakendused | Parem mitte-keermestatud rakenduste jaoks | Üldiselt on ohutu mitmetegurilistele rakendustele |
Serialiseerimine | Ei ole serialiseeritud | Sarmeriseeritud |
Alternatiiv | Mitme niidi keskkonnas võib kasutada samaaegset hashMapi | Sellist alternatiivi pole |