Sadržaj
- Primarna razlika
- Usporedni grafikon
- Definicija HashMap-a
- Definicija HashTable-a
- Razlike u matici
- Zaključak
Primarna razlika
HashMap i HashTable su dvije ključne strukture podataka u Javi. Oni su u Zbirkom okvira s nekoliko zajedničkih stvari između njih dvije. Iako imaju ove sličnosti, postoje neke razlike između njih. Oba HashMap i HashTablestore podatke u obliku parova ključ-vrijednost i slao obje implementiraju sučelje Map. Za pohranu elemenata i HashMap i HashTable koriste se tehnika Hashing. Kako se moramo riješiti razlike između to dvoje, tako se najvažnija razlika temelji na sigurnosti navoja. Glavne razlike razlike između HashMap-a i HashTable-a uključuju null-tipke, vrijednosti unosa, sinkronizaciju. Performanse i klasa. HashTable je siguran za navoje, dok s druge strane HashMap nije siguran za niti. HashTable se sinkronizira interno dok HashMap nije sinkroniziran interno, tako da HashMap nije siguran za upotrebu u višestrukim aplikacijama. Performanse HashMap-a su dobre u usporedbi s HashTable-om, jer se HashTable sinkronizira interno. HashMap je preferiran nad HashTableom, jer HashTable je ostavljena klasa i smatra se da je to zbog amortizacije. HashMap je brz u odnosu na HashTable. Od početka uvođenja HashMap-a u JDK 1.2 on je član Java Collection Framework-a, ali prije JDK 1.2 HashTable je već prisutan, a JDK 1.2 je napravljen za implementaciju sučelja Map-a i postaje član Collection Framework-a.
Usporedni grafikon
HashMap | Hashtable | |
definicija | HashMap dopušta maksimalno jednu null tipku, a dopušta se i bilo koji broj null vrijednosti. | Niti dopušta niti jedan null ključ niti nultu vrijednost. |
Povratak | Za prelazak elemenata HashMap vraća samo Iteratore | Povratak nisu samo Iteratori, već i Popisivanje. |
izvršenje | implementira Map sučelje proširivanjem klase AbstractMap | Implementira sučelje Map proširivanjem klase rječnika. |
Sinkronizacija | Nije se sinkronizirano interno | Interno se sinkronizira |
Definicija HashMap-a
HashMap je važna struktura podataka u okviru Collection Collection na Javi. HashMap nije siguran niti se interno ne sinkronizira pa HashMap nije siguran za upotrebu u višestrukim aplikacijama. Ali to može biti sigurno za višestruke programe, sinkroniziravši ga izvana pomoću metode Collections.synchronized (). Provodi sučelje Map proširujući klasu AbstractMap. HashMap dopušta maksimalno jednu null tipku, a dopušta se i bilo koji broj null vrijednosti. Iterator koji je vratio HasMap po prirodi je neuspjeh. Uspjeh HashMap-a je dobar i time je brz u usporedbi s HashTablom.
Definicija HashTable-a
HashTable je važna struktura podataka u Framework Collection na Javi. HashTable je siguran u nitima i interno se sinkronizira. Stoga je sigurno koristiti za višestruke nanose. Provodi sučelje Map proširujući klasu rječnika. Ne dopušta niti jedan null ključ niti null vrijednost. HashTable je ostavština i smatra se da je to zbog amortizacije. Popisi koje je HashTable vratio, nisu prirodno sigurni.
Razlike u matici
- HashTable je siguran za navoje, dok s druge strane HashMap nije siguran za niti.
- HashTable se sinkronizira interno dok HashMap nije sinkroniziran interno.
- Oba HashMap i HashTable implementiraju sučelje Map, ali oboje proširuju različite klase. HashMap implementira Map sučelje proširivanjem klase AbstractMap, dok s druge strane HashTable provodi sučelje Map proširujući klasu rječnika.
- HashMap dopušta maksimalno jednu null tipku, a bilo koji broj nulte vrijednosti je također dopušten, dok HashTable ne dopušta niti jedan null ključ niti nulu.
- Za prelazak elemenata HashMap vraća samo Iteratere, dok s druge strane HashTable vraćaju ne samo Iteratore, već i Popis.
- Iterator koji je vratio HasMap je po prirodi neuspjeh, dok su popisi koji su vraćeni od strane HashTable-a u nesigurnosti.
- HashMap je brz u odnosu na HashTable.
- HashTable je spor u usporedbi s HashMapom.
- Uspjeh HashMap-a je dobar u usporedbi s HashTablom jer se HashTable sinkronizira interno.
- HashMap se preferira nad HashTable-om, jer HashTable je stariji razred i smatra se da dospijeva za amortizaciju.
- Od početka uvođenja HashMap-a u JDK 1.2 on je član Java Collection Framework-a, ali prije JDK 1.2 HashTable su već tu, a JDK 1.2 je napravljen za implementaciju sučelja Map-a i postaje član Collection Framework-a.
Zaključak
Računalna arhitektura nešto je što je misterija za ljude koji su opći korisnici i nemaju detaljno znanje o njoj. Dva pojma HashMap i HashTable slični su onima koji se smatraju istima, ali se razlikuju u radu i funkcijama. Ovaj članak, dakle, daje pravilno razumijevanje dviju vrsta kako bi ljudi stekli jasniju predodžbu.