Diferència entre HashMap i TreeMap a Java

Autora: Laura McKinney
Data De La Creació: 2 Abril 2021
Data D’Actualització: 17 Ser Possible 2024
Anonim
Diferència entre HashMap i TreeMap a Java - Tecnologia
Diferència entre HashMap i TreeMap a Java - Tecnologia

Content


HashMap i TreeMap són les classes Map i tant implementen la interfície Map. Map és un objecte que emmagatzema parells de valor de clau, on cada clau és única i pot haver-hi valors duplicats. La classe HashMap utilitza la taula hash com a estructura de dades. El TreeMap utilitza l'arbre negre vermell com a estructura de dades. La principal diferència entre HashMap i Treemap és que el HashMap no conserva l'ordre d'inserció mentre que, Mapa de pàgina ho fa

Comencem així la nostra discussió sobre les diferències entre HashMap i TreeMap amb l'ajut del gràfic de comparació que es mostra a continuació.

  1. Gràfic de comparació
  2. Definició
  3. Diferències claus
  4. Conclusió

Gràfic de comparació

Bases per a la comparacióHashMapTreeMap
Bàsic HashMap no manté l'ordre d'inserció.TreeMap manté l’ordre d’inserció.
Estructura de dadesHashMap utilitza la taula de Hash com a estructura de dades subjacent.TreeMap utilitza Red-Black Tree com a estructura de dades subjacent.
Claus i valors nuls HashMap permet la tecla Null una vegada que l’anunci valorarà qualsevol quantitat de temps.TreeMap no permet la tecla Nul, però permet Null Valors qualsevol quantitat de temps.
Extensions i implantacionsHashMap estén la classe AbstractMap i implementa la interfície Map.TreeMap amplia la classe AbstractMap i implementa la interfície SortedMap i NavigableMap.
RendimentHashMap funciona més ràpidament.TreeMap en comparació a HashMap funciona més lent.


Definició de HashMap

HashMap és una classe de Map. Utilitza el taula de hash, com a estructura de dades per emmagatzemar la parella de valors de clau de mapes. La inserció del parell de valor clau es fa utilitzant el botó codi hash del claus. Per tant, cada clau del mapa ha de ser única, ja que s'utilitzarà per recuperar els valors.

L’ordre d’inserció a HashMap és no preservat, cosa que significa que l'objecte hashmap no retorna els elements en l'ordre en què es van inserir. D'altra banda, l'ordre en què es tornaran els elements no és fix.

El clau es permet estar NUL alhora, però la valors pot ser NUL en qualsevol moment. El HashMap pot contenir el heterogeni objectes per a claus i també valors.


Hi ha quatre constructors de HashMap:

HashMap () HashMap (Mapa m) HashMap (capacitat int), HashMap (capacitat int, float fillRatio)

El primer constructor crea l'objecte buit de HashMap. El segon el constructor inicialitza el HashMap mitjançant elements de Map m. El tercer constructor inicialitza HashMap amb la capacitat proporcionada en l'argument. El quart el constructor inicialitza la capacitat i la proporció d'ompliment de l'objecte HashMap.

El valor per defecte capacitat del HashMap és 16i el valor per defecte proporció d'ompliment del HashMap és 0.75.

Definició de TreeMap

Com HashMap, TreeMap també és una classe de Map. TreeMap s'estén AbstractMap classe i instruments NavigabelMap i SortedMap. Els objectes TreeMap emmagatzemen els elements del mapa a l'estructura de l'arbre. L'estructura de dades usada per emmagatzemar el mapa és Arbre vermell-negre.

El TreeMap emmagatzema la parella de valors de clau en l’ordre ordenat que ajuda a la recuperació ràpida dels elements. L’objecte TreeMap retorna els elements al ordenats (ascendent) ordenar.

Hi ha quatre constructors de TreeMap:

TreeMap () TreeMap (Comparador <? Super K> comp) TreeMap (Mapa <? Estén K,? Estén V> m) TreeMap (SortedMap sm)

El primer els constructors creen un objecte buit de TreeMap que seria ordenat per ordre natural de les seves claus. El segon constructor crearà un mapa d’arbre buit que serà ordenat per Comparador cmp. El tercer el constructor anterior crearà un mapa de pàgina que s'inicialitzarà amb les entrades de Mapa m. El quart constructor crearà un mapa de pàgina que s'inicialitzarà amb les entrades de SortedMap sm.

Treemap no té cap mètode nou, utilitza el mètode d'interfície NavigableMap i SortedMap i la classe AbstractMap.

  1. Les dues classes s’utilitzen per crear objectes de mapa, però la diferència bàsica entre HashMap i Treemap és que HashMap no manté l’ordre d’inserció mentre que el Treemap sí.
  2. L’estructura de dades utilitzada per Hashmap per emmagatzemar elements del mapa és la taula hash i l’estructura de dades utilitzada per TreeMap per emmagatzemar els elements del mapa és l’arbre negre vermell.
  3. Tant les classes Hashmap com Treemap estenen la classe AbstractMap, però la classe HashMap implementa la interfície Map i la TreeMap implementa la interfície NavigableMap i SortedMap.
  4. Els valors poden ser nuls en qualsevol moment, però la clau és nul·la només una vegada al botó de capçal de HashMap i una clau mai a Treemap.
  5. El rendiment de HashMap és més ràpid i no perd temps per ordenar els elements del mapa com ho fa TreeMap. Per tant, TreeMap té un rendiment més lent que HashMap.

Conclusió:

TreeMap només s’ha d’utilitzar quan necessiteu un parell de valors de claus de forma ordenada. La classificació inclou el cost de rendiment. Si es desincronitza, l'HashMap funciona més ràpid.