Java >> Java tutorial >  >> Tag >> HashMap

Java HashMap vs Hashtable:Hvad er forskellen?

På entry-level et af de hyppigst stillede interviewspørgsmål handler om Java HashMap vs Hashtable. Så du skal være fuldt ud forberedt på at svare på alt relateret til HashMap eller Hashtable. Java gør brug af 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 største forskelle mellem disse to.

Jeg vil diskutere emnerne i følgende rækkefølge:

  • Hvad er HashMap?
  • Hvad er en hashtabel?
  • HashMap vs Hashtable
  • Hvornår skal du bruge HashMap og Hashtable?

Lad os begynde!

Hvad er HashMap?

HashMap er en kortbaseret samlingsklasse i Java som bruges til at gemme data i nøgle- og værdipar. Det hjælper med at implementere kortgrænsefladen i Java. Det er dybest set en del af Javas samling siden Java version 1.2 og giver den grundlæggende implementering af kortgrænsefladen i Java. For at få adgang til en værdi i HashMap, skal man kende dens Nøgle .

Det kaldes HashMap, fordi det bruger en teknik kaldet Hashing . Hashing er en proces til at konvertere en stor streng 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 hashtabel?

En hashtabel er en datastruktur der bruges til at gemme nøgler/værdipar. I en hashtabel 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 for de ønskede data.

Java Hashtable-klassen implementerer en hashtabel, der kortlægger nøgler til værdier. Den arver klassen Ordbog og implementerer kortgrænsefladen.

Hashtable-erklæring

offentlig klasse Hashtable udvider Ordbog implementerer Map, Klonbar, Serialiserbar

K: Det er den type nøgler, der ved kortet.
V: Dette er typen af ​​tilknyttede værdier.

Nu hvor I har forstået, hvordan HashMap og Hashtable i Java fungerer, lad os tage et kig 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 ordentlig synkroniseringskode. Synkroniseret og kan deles med mange tråde

Nul-nøgler

Tillader kun én null-nøgle og flere null-værdier Tillader ikke null-nøgle eller dens værdi

Ældre system

Dette er en del af Java-samlinger Hashtable er en ældre klasse, som ikke var en del af de oprindelige Java-samlinger

Iterator

Iterator er fejl-hurtig, og den kaster en concurrentModificationException, hvis en anden tråd forsøger at ændre kortet Tælleren er ikke fejlhurtig

Arver klasse

Arver AbstractMap klasse Inherits Dictionary class

Nu, hvornår kan du bruge Java HashMap og Hashtable?

Hvornår skal du 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, så kan Hashtable bruges, da alle dets metoder er synkroniseret. Men dette er en arv klasse, og de skal undgås. Dette er ikke muligt af HashMap.
  • Til et multitrådsmiljø kan du bruge ConcurrentHashMap, som næsten ligner Hashtable. Her kan du endda gøre HashMap eksplicit synkroniseret
  • Den synkroniserede operation resulterer i en dårlig ydeevne, så den bør undgås, indtil og medmindre det er påkrævet. Derfor bruges HashMap helt sikkert uden nogen tvivl til et ikke-trådsmiljø.

Dette bringer os til slutningen af ​​denne artikel, hvor vi har lært forskellene mellem Java HashMap og Hashtable. Håber I er klar over dette emne.

Hvis du fandt denne artikel om "Java HashMap vs Hashtable" relevant, så tjek Edureka Java Certification Training , en betroet online læringsvirksomhed med et netværk af mere end 250.000 tilfredse elever spredt over hele kloden.

Kurset er designet til at give dig et forspring i Java-programmering og træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige Java-frameworks som Hibernate &Spring.

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.


Java tag