Diferència entre HashMap i TreeMap a Java
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ó.
- Gràfic de comparació
- Definició
- Diferències claus
- Conclusió
Gràfic de comparació
Bases per a la comparació | HashMap | TreeMap |
---|---|---|
Bàsic | HashMap no manté l'ordre d'inserció. | TreeMap manté l’ordre d’inserció. |
Estructura de dades | HashMap 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 implantacions | HashMap estén la classe AbstractMap i implementa la interfície Map. | TreeMap amplia la classe AbstractMap i implementa la interfície SortedMap i NavigableMap. |
Rendiment | HashMap 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 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. 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.
Conclusió: