På en nybörjarnivå, en av de vanligaste handlar om Java HashMap vs Hashtable. Så du måste vara helt beredd att svara på allt som har med det att göra HashMap eller Hashtable. Java använder HashMap och Hashtable för att lagra data i form av nyckel- och värden . Så den här artikeln hjälper dig att känna till de stora skillnaderna mellan dessa två.
Jag kommer att diskutera ämnena i följande ordning:
- Vad är HashMap?
- Vad är en Hashtable?
- HashMap vs Hashtable
- När ska jag använda HashMap och Hashtable?
Låt oss börja!
Vad är HashMap?
HashMap är en kartbaserad insamlingskurs i som används för att lagra data i nyckel- och värdepar. Det hjälper till att implementera Map-gränssnittet i Java. Det är i grunden en del av sedan Java version 1.2 och tillhandahåller grundläggande implementering av Map-gränssnittet i Java. För att komma åt ett värde inom HashMap måste man känna till dess Nyckel .
Det kallas HashMap eftersom det använder en teknik som kallas Hashing . Hashing är en process för att konvertera en stor till en mindre genom att hålla strängens värde konstant. Det resulterande komprimerade värdet hjälper till att indexera och snabbare sökningar.
Vad är en Hashtable?
En Hashtable är en datastruktur som används för att lagra nycklar / värdepar. I en Hashtable lagras data i ett arrayformat, där varje datavärde har sitt eget unika indexvärde. Du kan komma åt data väldigt snabbt om du känner till indexet för önskad data.
Java Hashtable-klass implementerar en hashtable som mappar nycklar till värden. Den ärver klassen Dictionary och implementerar Map-gränssnittet.
Hashtable-deklaration
public class Hashtable utökar ordbok implementerar Map, Cloneable, Serializable
hur man använder skannerklass
TILL: Det är den typ av nycklar som finns på kartan.
V: Det här är typen av mappade värden.
Nu när ni har förstått hur HashMap och Hashtable i Java fungerar, låt oss ta en titt på parametrarna för att förstå skillnaderna mellan HashMap och Hashtable.
Låt oss nu påpeka de stora skillnaderna mellan HashMap och Hashtable.
Java HashMap vs Hashtable
Parametrar | HashMap | Hashtable |
Synkronisering | Icke-synkroniserad vilket innebär att den inte är trådsäker och inte kan delas mellan många trådar utan en korrekt synkroniseringskod. | Synkroniserad och kan delas med många trådar |
Nollnycklar | Tillåter endast en nollnyckel och flera nollvärden | Tillåter inte nollnyckeln eller dess värde |
Äldre system | Detta är en del av Java Collections | Hashtable är en äldre klass var inte en del av initialen |
Iterator | Iterator är felsnabb och det kastar en concurrentModificationException om någon annan tråd försöker ändra kartan | Räknaren är inte felsnabb |
Arvklass | Arv AbstraktKarta klass | Inherits Dictionary-klass |
Nu, när kan du använda Java HashMap och Hashtable?
När ska jag använda HashMap och Hashtable?
- Synkronisering är den största skillnaden mellan Java HashMap och Hashtable. Men om det finns ett behov av en trådsäker operation kan Hashtable användas eftersom alla dess metoder är synkroniserade. Men detta är en äldre klass och de måste undvikas. Detta är inte möjligt med HashMap.
- För en miljö med flera trådar kan du använda ConcurrentHashMap som nästan liknar Hashtable. Här kan du till och med synkronisera HashMap uttryckligen
- Den synkroniserade operationen resulterar i dålig prestanda, så det bör undvikas tills och om det inte krävs. Därför för den icke-trådiga miljön används HashMap definitivt utan tvekan.
Detta leder oss till slutet av den här artikeln där vi har lärt oss skillnader mellan Java HashMap och Hashtable. Hoppas ni är klara med detta ämne.
Om du tyckte att den här artikeln om “Java HashMap vs Hashtable” var relevant, kolla in ett pålitligt online-lärande företag med ett nätverk med mer än 250 000 nöjda elever spridda över hela världen.
Kursen är utformad för att ge dig ett försprång till och träna dig för både grundläggande och avancerade Java-koncept tillsammans med olika som Hibernate & Spring.
Om du stöter på några frågor är du välkommen att ställa alla dina frågor i kommentarsektionen i 'Java HashMap vs Hashtable' så svarar vårt team gärna.