Kľúčový rozdiel: V informatike má hashTable alebo hashMap odkaz na dátovú štruktúru, ktorá spája kľúče (mená) s hodnotami (atribútmi). V jazyku Java existujú medzi týmito dvoma dôležitými rozdielmi: HashTable je synchronizovaný a HashMap je nesynchronizovaný. HashTable nepovoľuje nulové kľúče. HashMap však umožňuje jediný nulový kľúč a ľubovoľný počet nulových hodnôt.
HashMap a hashTable sú dátové štruktúry, ktoré sú súčasťou kolekcie Java. Na ukladanie objektov používajú páry kľúč-hodnota. Obaja zdieľajú niektoré podobnosti, ako je implementácia rozhrania java.util.Map a obe pracujú na princípe hashovania. Avšak, keď ich odkazujeme do kontextu s programovacím jazykom Java, existujú medzi nimi obrovské rozdiely.
Heslo typu hashTable sa používa na ukladanie a načítanie hodnoty pomocou kľúča. Na tento účel musí byť kľúč jedinečný. Tabuľka, ktorá sa používa na ukladanie dvojíc kľúčov a hodnôt, je známa ako tabuľka hash. Hash tabuľka je vytvorená pomocou algoritmu, ktorý má kľúče. Táto funkcia hash sa používa na priradenie čísiel vstupným údajom a potom sa dáta ukladajú ako index poľa, ktorý zodpovedá vypočítanému alebo vyhodnotenému číslu.
Porovnanie HashMap a HashTable:
HashMap | Hashtable | |
synchronizácia | Nie je synchronizovaný | Je synchronizovaná (bezpečné vlákno) |
Nulové hodnoty | Umožňuje hodnotu null ako kľúč a hodnotu | Nepovoľuje nuly |
Úvod do java | Java verzia 1.2 | Prvá verzia vývojovej sady Java |
výkon | Porovnateľne lepšie | Porovnateľne slabé |
rozširuje | Rozširuje triedu AbstractMap | Rozširuje triedu slovníkov, ktorá je dosť stará |
Iterácia kľúčov | Iterátor sa používa na iteráciu kľúčov | Rozhranie výčtu sa používa pre klávesy s iteráciou |
aplikácia | Lepšie pre aplikácie bez závitov | Vo všeobecnosti je bezpečné pre viacvláknové aplikácie |
serializácie | Nie je serializované | serializovaný |
alternatívne | Jeden môže použiť súbežný hashMap pre prostredie s viacerými vláknami | Žiadna takáto alternatíva |