Diferència clau: TreeSet vs HashSet
La majoria dels llenguatges de programació admeten Arrays. És una estructura de dades que s'utilitza per emmagatzemar diversos elements del mateix tipus de dades. Si hi ha una matriu declarada per a sis elements, no es pot utilitzar per emmagatzemar deu elements. Per tant, les matrius no són dinàmiques i no poden canviar la mida de la matriu un cop declarada. Els llenguatges de programació com Java admeten col·leccions que s'utilitzen per emmagatzemar dades de forma dinàmica. Les col·leccions admeten operacions com ara afegir elements i suprimir elements. Hi ha una sèrie d'interfícies i classes a la jerarquia de col·lecció. La interfície base és la interfície Col·lecció. Set és una interfície que amplia la interfície de Col·lecció. No permet la duplicació. TreeSet i HashSet són dues classes a la jerarquia de col·lecció i ambdues implementen la interfície Set. TreeSet és una classe que implementa la interfície Set i s'utilitza per emmagatzemar elements únics en ordre ascendent. HashSet és una classe que implementa la interfície Set i s'utilitza per emmagatzemar elements únics mitjançant el mecanisme Hash. La diferència clau entre TreeSet i HashSet és que TreeSet emmagatzema els elements en ordre ascendent mentre que HashSet no emmagatzema els elements en ordre ascendent. Tant TreeSet com HashSet només emmagatzemen elements únics.
Què és un TreeSet?
La classe TreeSet implementa la interfície NavigableSet. La interfície NavigableSet amplia les interfícies SortedSet, Set, Collection i Iterable en ordre jeràrquic. TreeSet sempre manté l'ordre ascendent. Si els elements s'han inserit en l'ordre B, A, C, s'emmagatzemaran com a A, B, C. Els mètodes com ara afegir (), eliminar () es poden utilitzar amb l'objecte TreeSet. El mètode add es pot utilitzar per afegir un element. El mètode remove s'utilitza per eliminar un element de la col·lecció. Aquests són alguns mètodes que es poden utilitzar amb TreeSet.
Figura 01: Programa amb TreeSet
Segons el programa anterior, es crea un objecte del tipus TreeSet. Els elements de dades de cadena s'afegeixen a aquest objecte mitjançant el mètode add. L'ordre d'inserció de dades és A, D, A, B, C, D. Mitjançant l'iterador, els valors emmagatzemats s'imprimeixen a la pantalla. La sortida és A, B, C, D. Tot i que hi ha dues lletres A i dues lletres D, la sortida mostra una A i una D cadascuna. Per tant, el TreeSet emmagatzema elements únics. No hi ha un ordre d'inserció particular, però quan s'observa la sortida, es pot veure que el TreeSet manté l'ordre ascendent dels elements.
Què és un HashSet?
La classe HashSet amplia la classe AbstractSet que implementa Set Interface. La interfície Set hereta les interfícies Col·lecció i Iterable en ordre jeràrquic. A HashSet, no hi ha cap garantia que els elements mantinguin l'ordre ascendent i l'ordre inserit. Si l'ordre inserit era A, B, C, els valors podrien emmagatzemar-se com a C, A, B. L'ordre d'emmagatzematge també pot ser A, B, C, però no hi ha cap garantia que es mantingui l'ordre inserit o l'ordre ascendent.
Figura 02: programa amb HashSet
Segons el programa anterior, es crea un objecte del tipus HashSet. Els elements de dades de cadena s'afegeixen a aquest objecte mitjançant el mètode add. L'ordre d'inserció de dades és L, R, M, M, R, L. Mitjançant l'iterador, els valors emmagatzemats s'imprimeixen a la pantalla. La sortida és R L M. Tot i que hi ha dues lletres L, R i M de cadascuna, només es mostra una lletra de cadascuna. Per tant, el HashSet emmagatzema elements únics. En observar la sortida, es pot veure que no hi ha ordre ascendent o que es manté l'ordre inserit.
Quines similituds hi ha entre TreeSet i HashSet?
- Tant TreeSet com HashSet són classes que pertanyen a la jerarquia de col·leccions.
- Tant TreeSet com HashSet només emmagatzemen elements únics.
- Tant TreeSet com HashSet es poden utilitzar per emmagatzemar i manipular molts elements.
- Tant TreeSet com HashSet no mantenen l'ordre inserit.
Quina diferència hi ha entre TreeSet i HashSet?
TreeSet vs HashSet |
|
TreeSet és una classe de la jerarquia de col·leccions que s'utilitza per emmagatzemar elements únics en ordre ascendent. | HashSet és una classe de la jerarquia de col·leccions que s'utilitza per emmagatzemar elements únics mitjançant el mecanisme Hash. |
Emmagatzematge d'elements | |
TreeSet emmagatzema els elements en ordre ascendent. | HashSet no emmagatzema els elements en ordre ascendent. |
Resum: TreeSet vs HashSet
En programació, cal emmagatzemar elements de dades de manera dinàmica. Els llenguatges de programació com Java admeten les col·leccions per aconseguir aquesta tasca. Hi ha una sèrie d'interfícies i classes a la jerarquia de col·lecció. TreeSet i HashSet són dues classes a la jerarquia de la col·lecció. Tots dos implementen la interfície Set. TreeSet és una classe que implementa la interfície Set i s'utilitza per emmagatzemar elements únics en ordre ascendent. HashSet és una classe que implementa la interfície Set i s'utilitza per emmagatzemar elements únics mitjançant el mecanisme Hash. La diferència entre TreeSet i HashSet és que TreeSet emmagatzema els elements en ordre ascendent mentre que HashSet no emmagatzema els elements en ordre ascendent. En aquest article es parla de la diferència entre TreeSet i HashSet.