Belangrijkste verschil: in de informatica verwijst een hash-tabel of een hash-kaart naar een gegevensstructuur die sleutels (namen) verbindt met waarden (attributen). In Java zijn er enkele belangrijke verschillen tussen de twee, zoals: HashTable is gesynchroniseerd en HashMap is niet gesynchroniseerd. Een hashtabel staat geen nul-toetsen toe. Een HashMap staat echter een enkele nul-sleutel en een willekeurig aantal null-waarden toe.
HashMap en hashTable zijn gegevensstructuren die deel uitmaken van de Java-verzameling. Ze gebruiken sleutelwaardeparen om objecten op te slaan. Beiden delen een aantal overeenkomsten, zoals zowel de interface java.util.Map implementeren en beide werken volgens het hashing-principe. Wanneer we echter naar hen verwijzen in verband met de Java-programmeertaal, zijn er tal van verschillen tussen beide.
Een hashTable wordt gebruikt om een waarde op te slaan en op te halen met behulp van een sleutel. Voor dit doel moet de sleutel uniek zijn. De tabel die wordt gebruikt voor het opslaan van de sleutel- en waardeparen staat bekend als een hashtabel. Een hashtabel wordt gevormd door een algoritme te gebruiken dat de sleutels hashes. Deze hash-functie wordt gebruikt om nummers aan de invoergegevens toe te wijzen en vervolgens worden de gegevens opgeslagen als de reeksindex die overeenkomt met het berekende of geëvalueerde nummer.
Vergelijking tussen HashMap en HashTable:
Hash kaart | HashTable | |
Synchronisatie | Het is niet gesynchroniseerd | Het is gesynchroniseerd (thread safe) |
Null-waarden | Het staat nulwaarden toe als sleutel en waarde | Het staat geen nullen toe |
Introductie in Java | Java-versie 1.2 | Eerste versie van de Java-ontwikkelkit |
Prestatie | Relatief beter | Relatief slecht |
breidt | Het breidt de klasse AbstractMap uit | Het breidt woordenboekklasse uit die vrij oud is |
Iteratie van sleutels | Iterator wordt gebruikt voor het itereren van de sleutels | De opsommingsinterface wordt gebruikt voor het itereren van sleutels |
toepassingen | Beter voor toepassingen zonder schroefdraad | Over het algemeen veilig voor multithread-toepassingen |
serialization | Niet geserialiseerd | serialized |
Alternatief | Men kan gelijktijdige hashMap gebruiken voor multi-threads | Geen alternatief |