Verschil tussen HashMap en TreeMap in Java
Inhoud
HashMap en TreeMap zijn de Map-klassen en beide implementeren de Map-interface. Kaart is een object waarin sleutel / waarde-paren worden opgeslagen, waarbij elke sleutel uniek is en er mogelijk dubbele waarden zijn. De klasse HashMap gebruikt de hashtabel als gegevensstructuur. De TreeMap gebruikt de rood-zwarte boom als datastructuur. Het belangrijkste verschil tussen HashMap en Treemap is dat de Hash kaart behoudt de invoegvolgorde niet, terwijl de treemap doet.
Laten we dus onze discussie over de verschillen tussen HashMap en TreeMap beginnen met behulp van de onderstaande vergelijkingstabel.
- Vergelijkingstabel
- Definitie
- Belangrijkste verschillen
- Gevolgtrekking
Vergelijkingstabel
Basis voor vergelijking | Hash kaart | TreeMap |
---|---|---|
basis- | HashMap handhaaft de invoegvolgorde niet. | TreeMap handhaaft de invoegvolgorde. |
Data structuur | HashMap gebruikt Hash Table als onderliggende gegevensstructuur. | TreeMap gebruikt Red-Black Tree als onderliggende gegevensstructuur. |
Null Keys and Values | HashMap staat Null key eenmaal ad null waarde een willekeurig aantal keer toe. | TreeMap staat geen Null-sleutel toe, maar laat Null-waarden een willekeurig aantal keren toe. |
Breidt uit en implementeert | HashMap breidt de AbstractMap-klasse uit en implementeert de kaartinterface. | TreeMap breidt de AbstractMap-klasse uit en implementeert de SortedMap- en NavigableMap-interface. |
Prestatie | HashMap werkt sneller. | TreeMap werkt in vergelijking met HashMap langzamer. |
Definitie van HashMap
Hash kaart is een kaartklasse. Het gebruikt de hash tafel, als een gegevensstructuur om het sleutelwaardepaar van de kaarten op te slaan. Het invoegen van sleutel / waarde-paar gebeurt met behulp van de hash-code van de sleutels. Daarom moet elke sleutel in de kaart uniek zijn, omdat deze wordt gebruikt om de waarden op te halen.
De invoegvolgorde in HashMap is niet behouden, wat betekent dat het hashmap-object de elementen niet retourneert in de volgorde waarin ze zijn ingevoegd. Aan de andere kant staat de volgorde waarin de elementen worden geretourneerd niet vast.
De sleutel mag zijn NUL tegelijk, maar de waarden kan zijn NUL op elk gewenst moment. De HashMap kan de heterogeen objecten voor sleutels en waarden.
Er zijn vier constructeurs van HashMap:
HashMap () HashMap (kaart m) HashMap (int capaciteit), HashMap (int capaciteit, float fillRatio)
De eerste constructor maakt het lege object van HashMap. De tweede constructor initialiseert de HashMap met elementen van Map m. De derde constructor initialiseert de HashMap met de capaciteit die in het argument wordt vermeld. De vierde constructor initialiseert de capaciteit en de opvullingsverhouding van het HashMap-object.
De standaard capaciteit van de HashMap is 16en de standaardwaarde vulverhouding van de HashMap is 0.75.
Definitie van TreeMap
Zoals HashMap, TreeMap is ook een kaartklasse. TreeMap breidt zich uit AbstractMap klasse en werktuigen NavigabelMap en SortedMap. De TreeMap-objecten slaan de kaartelementen op in de boomstructuur. De gegevensstructuur die wordt gebruikt voor het opslaan van de kaart is de Rood-zwarte boom.
De TreeMap slaat het sleutelwaardepaar op in de gesorteerde volgorde, wat helpt bij het snel ophalen van de elementen. Het TreeMap-object retourneert de elementen in de gesorteerde (oplopend) bestellen.
Er zijn vier constructors van TreeMap:
TreeMap () TreeMap (Comparator <? Super K> comp) TreeMap (Kaart <? Breidt K uit,? Breidt V> m) TreeMap (SortedMap De eerste constructeurs maken een leeg object van TreeMap dat in natuurlijke volgorde zijn sleutels zou sorteren. De tweede constructor maakt een lege boomkaart die wordt gesorteerd op de Vergelijker cmp. De derde constructor hierboven maakt een boomkaart die wordt geïnitialiseerd met behulp van vermeldingen van Kaart m. De vierde constructor maakt een boomkaart die wordt geïnitialiseerd met de vermeldingen van SortedMap sm. Treemap heeft zelf geen nieuwe methode, het gebruikt de methode van interface NavigableMap en SortedMap en de klasse AbstractMap. TreeMap mag alleen worden gebruikt als u sleutelwaardeparen in gesorteerde vorm nodig hebt. Omdat sorteren prestaties omvat. HashMap niet-gesynchroniseerd werkt sneller.
Gevolgtrekking: