logo

Forskellen mellem HashMap og TreeMap

Java HashMap og Trækort begge er klasserne i Java Collections frameworket. Java Map-implementering fungerer normalt som en bucketed hash-tabel. Når spande bliver for store, bliver de omdannet til noder af TræNoder , hver struktureret på samme måde som dem i java.util.TreeMap .

multiline kommentar powershell

HashMap

HashMap implementerer Kort, kan klones og Serialiserbar interface. Det strækker sig Abstrakt kort klasse. Det hører til java.util pakke.

  • HashMap indeholder værdi baseret på nøglen.
  • Det kan have en enkelt null-nøgle og flere null-værdier.
  • HashMap opretholder ikke orden under iteration.
  • Den indeholder unikke elementer.
  • Det fungerer efter princippet om hashing.

Trækort

TreeMap-klassen udvides Abstrakt kort klasse og redskaber Navigable Map , Kan klones , og Serialiserbar interface. TreeMap er et eksempel på en Sorteret kort . Det er implementeret af det rød-sort træ, hvilket betyder, at rækkefølgen af ​​nøglerne er sorteret.

  • TreeMap indeholder også værdi baseret på nøglen.
  • TreeMap er sorteret efter nøgler.
  • Den indeholder unikke elementer.
  • Det kan ikke have en null-nøgle, men have flere null-værdier.
  • Tasterne er i stigende rækkefølge.
  • Det gemmer objektet i træstrukturen.

Ligheder mellem HashMap og TreeMap

    HashMapog Trækort klasser implementerer Kan klones og Serialiserbar interface.
  • Begge klasser udvider Abstrakt kort klasse.
  • Et kort er et objekt, der gemmer nøgleværdi par. I nøgle-værdi-parret er hver nøgle unik, men deres værdier kan være duplikere .
  • Begge klasser repræsenterer kortlægningen fra nøgle til værdier .
  • Begge kort er ikke synkroniseret .
  • Kortbrug sætte() metode til at tilføje et element i kortet.
  • Iteratoren kaster en ConcurrentModificationException hvis kortet bliver ændret på nogen måde.

Den vigtigste forskel mellem HashMap og TreeMap er:

HashMap bevarer ikke iterationsrækkefølgen, mens Trækort bevar ordren ved at bruge sammenligne med() metode eller en komparator indstillet i TreeMap's konstruktør.

snor til itn

Følgende tabel beskriver forskellene mellem HashMap og TreeMap.

Basis HashMap Trækort
Definition Java HashMap er en hashtable-baseret implementering af Map-grænseflade. Java Trækort er en træstrukturbaseret implementering af kortgrænseflade.
Interface implementerer HashMap implementerer Kort, kan klones , og Serialiserbar interface. TreeMap implementerer Navigable Map, Klonbar , og Serialiserbar interface.
Nul nøgler/værdier HashMap tillader en enkelt nul nøgle og mange null-værdier. TreeMap tillader ikke nul nøgler, men kan have mange null-værdier.
Homogen/ Heterogen HashMap tillader heterogene elementer, fordi det ikke udfører sortering på nøgler. TreeMap tillader homogene værdier som en nøgle på grund af sortering.
Ydeevne HashMap er hurtigere end TreeMap, fordi det giver konstant-tidsydelse, der er O(1) for de grundlæggende operationer som get() og put(). TreeMap er langsom sammenlignet med HashMap, fordi det giver ydeevnen af ​​O(log(n)) for de fleste operationer som add(), remove() og contains().
Datastruktur HashMap-klassen bruger hash tabel . TreeMap bruger internt en Rød-sort træ, som er et selvbalancerende binært søgetræ.
Sammenligningsmetode Det bruger lige med() metoden til Objekt klasse for at sammenligne nøgler. Equals()-metoden i Map-klassen tilsidesætter den. Den bruger sammenligne med() metode til at sammenligne nøgler.
Funktionalitet HashMap-klassen indeholder kun grundlæggende funktioner som get(), put(), KeySet() , etc. . TreeMap-klassen er rig på funktionalitet, fordi den indeholder funktioner som: tailMap(), firstKey(), lastKey(), pollFirstEntry(), pollLastEntry() .
Rækkefølgen af ​​elementer HashMap opretholder ingen orden. Elementerne er sorteret ind naturlig orden (stigende).
Bruger HashMap skal bruges, når vi ikke kræver nøgle-værdi-par i sorteret rækkefølge. TreeMap skal bruges, når vi kræver nøgle-værdi-par i sorteret (stigende) rækkefølge.

Eksempel på HashMap vs TreeMap

I det følgende eksempel kan vi observere, at elementerne i HashMap er i tilfældig rækkefølge, mens elementerne i TreeMap er arrangeret i stigende rækkefølge.

 import java.util.Map; import java.util.HashMap; import java.util.TreeMap; public class HashMapVsTreeMapExample { public static void main(String args[]) { /*------------HashMap implementation----------------*/ Map hm=new HashMap(); //adding elements to the HashMap hm.put(9, 'Red'); hm.put(12, 'Black'); hm.put(6, 'Green'); hm.put(19, 'White'); System.out.println('HashMap iteration Order:'); //iteration over map using for each loop for(Map.Entryentry: hm.entrySet()) { //getting keys and values using method System.out.println(entry.getKey() + ' = ' +entry.getValue()); } /*------------TreeMap implementation----------------*/ Map tm=new TreeMap(); //adding elements to the TreeMap tm.put(9, 'Red'); tm.put(12, 'Black'); tm.put(6, 'Green'); tm.put(19, 'White'); System.out.println('TreeMap iteration Order:'); //iteration over map using for each loop for(Map.Entryentry: tm.entrySet()) { //getting keys and values using method //prints list in sorted order System.out.println(entry.getKey() + ' = ' +entry.getValue()); } } } 

Produktion:

Forskellen mellem HashMap og TreeMap