På et entry-level, en af de hyppigst stillede handler om Java HashMap vs Hashtable. Så du skal være fuldt forberedt på at svare på alt relateret til HashMap eller Hashtable. Java bruger HashMap og Hashtable til at gemme data i form af nøgle og værdier . Så denne artikel hjælper dig med at kende de store forskelle mellem disse to.
Jeg diskuterer emnerne i følgende rækkefølge:
- Hvad er HashMap?
- Hvad er en Hashtable?
- HashMap vs Hashtable
- Hvornår skal jeg bruge HashMap og Hashtable?
Lad os begynde!
Hvad er HashMap?
HashMap er en kortbaseret indsamlingsklasse i som bruges til at gemme data i nøgle- og værdipar. Det hjælper med at implementere Map-grænsefladen i Java. Det er dybest set en del af siden Java version 1.2 og giver den grundlæggende implementering af kortgrænsefladen i Java. For at få adgang til en værdi inden for HashMap skal man kende dens Nøgle .
Det kaldes HashMap, fordi det bruger en teknik kaldet Hashing . Hashing er en proces til konvertering af en stor til en mindre ved at holde værdien af strengen konstant. Den resulterende komprimerede værdi hjælper med indeksering og hurtigere søgninger.
Hvad er en Hashtable?
En Hashtable er en datastruktur der bruges til at gemme nøgler / værdipar. I en Hashtable gemmes data i et array-format, hvor hver dataværdi har sin egen unikke indeksværdi. Du kan få adgang til data virkelig hurtigt, hvis du kender indekset over de ønskede data.
Java Hashtable-klassen implementerer en hashtable, der kortlægger nøgler til værdier. Det arver ordbogsklassen og implementerer kortgrænsefladen.
Hashtable-erklæring
offentlig klasse Hashtable udvider ordbog implementerer Map, Cloneable, Serializable
TIL: Det er typen af nøgler, der findes på kortet.
V: Dette er typen af kortlagte værdier.
mysql_fetch_array
Nu hvor jer har forstået, hvordan HashMap og Hashtable i Java fungerer, skal vi se på parametrene for at forstå forskellene mellem HashMap og Hashtable.
Lad os nu påpege de store forskelle mellem HashMap og Hashtable.
Java HashMap vs Hashtable
Parametre | HashMap | Hashtable |
Synkronisering | Ikke-synkroniseret, hvilket betyder, at det ikke er trådsikkert og ikke kan deles mellem mange tråde uden en korrekt synkroniseringskode. | Synkroniseret og kan deles med mange tråde |
Nul nøgler | Tillader kun en nul-nøgle og flere nulværdier | Tillader ikke nul-nøgle eller dens værdi |
Ældre system hvad gør .format i python | Dette er en del af Java Collections | Hashtable er en ældre klasse, der ikke var en del af initialen |
Iterator | Iterator er fail-fast, og den kaster en concurrentModificationException, hvis nogen anden tråd forsøger at ændre kortet | Tælleren er ikke hurtig-hurtig |
Arveklasse | Arv AbstraktKort klasse | Arver ordbogsklasse |
Hvornår kan du nu bruge Java HashMap og Hashtable?
Hvornår skal jeg bruge HashMap og Hashtable?
- Synkronisering er den største forskel mellem Java HashMap og Hashtable. Men hvis der er behov for en trådsikker operation, kan Hashtable bruges, da alle dens metoder er synkroniseret. Men dette er en arveklasse, og de skal undgås. Dette er ikke muligt med HashMap.
- For et miljø med flere tråde kan du bruge ConcurrentHashMap, som næsten ligner Hashtable. Her kan du endda synkronisere HashMap eksplicit
- Den synkroniserede handling resulterer i en dårlig ydelse, så den bør undgås, indtil og medmindre det er nødvendigt. Derfor bruges HashMap bestemt uden tvivl til ikke-trådmiljøet.
Dette bringer os til slutningen af denne artikel, hvor vi har lært forskelle mellem Java HashMap og Hashtable. Håber I er klare med dette emne.
Hvis du fandt denne artikel om “Java HashMap vs Hashtable” relevant, skal du tjekke en betroet online læringsvirksomhed med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden.
Kurset er designet til at give dig et forspring i og træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige som dvale og forår.
Hvis du støder på spørgsmål, er du velkommen til at stille alle dine spørgsmål i kommentarfeltet i “Java HashMap vs Hashtable”, og vores team vil med glæde svare.