Mahalagang Pagkakaiba – TreeSet kumpara sa HashSet
Karamihan sa mga programming language ay sumusuporta sa Arrays. Ito ay isang istraktura ng data na ginagamit upang mag-imbak ng maraming elemento ng parehong uri ng data. Kung mayroong idineklara na array para sa anim na elemento, hindi ito magagamit upang mag-imbak ng sampung elemento. Samakatuwid, ang mga array ay hindi dynamic at hindi maaaring baguhin ang laki ng array kapag ito ay idineklara. Ang mga programming language gaya ng Java ay sumusuporta sa Mga Koleksyon na ginagamit upang mag-imbak ng data nang pabago-bago. Sinusuportahan ng mga koleksyon ang mga operasyon tulad ng pagdaragdag ng mga elemento at pagtanggal ng mga elemento. Mayroong isang bilang ng mga interface at klase sa hierarchy ng koleksyon. Ang base interface ay ang Collection interface. Ang Set ay isang interface na nagpapalawak sa interface ng Collection. Hindi nito pinapayagan ang pagdoble. Ang TreeSet at HashSet ay dalawang klase sa Collection hierarchy at parehong nagpapatupad ng Set interface. Ang TreeSet ay isang klase na nagpapatupad ng Set interface at ginagamit ito upang mag-imbak ng mga natatanging elemento sa pataas na pagkakasunud-sunod. Ang HashSet ay isang klase na nagpapatupad ng Set interface at ginagamit ito upang mag-imbak ng mga natatanging elemento gamit ang mekanismo ng Hashing. Ang pangunahing pagkakaiba sa pagitan ng TreeSet at HashSet ay ang TreeSet ay nag-iimbak ng mga elemento sa pataas na pagkakasunud-sunod habang ang HashSet ay hindi nag-iimbak ng mga elemento sa pataas na pagkakasunud-sunod. Ang TreeSet at HashSet ay nag-iimbak lamang ng mga natatanging elemento.
Ano ang TreeSet?
Ang TreeSet class ay nagpapatupad ng interface ng NavigableSet. Ang interface ng NavigableSet ay nagpapalawak ng SortedSet, Set, Collection at Iterable na mga interface sa hierarchical order. Palaging pinapanatili ng TreeSet ang pataas na pagkakasunud-sunod. Kung ang mga elemento ay ipinasok sa B, A, C order, sila ay maiimbak bilang A, B, C. Ang mga pamamaraan tulad ng add (), alisin () ay maaaring gamitin sa TreeSet object. Ang paraan ng pagdaragdag ay maaaring gamitin upang magdagdag ng isang elemento. Ang paraan ng pag-alis ay ginagamit upang alisin ang isang elemento mula sa koleksyon. Iyan ang ilang paraan na magagamit sa TreeSet.
Figure 01: Programa na may TreeSet
Ayon sa programa sa itaas, ang isang object ng uri ng TreeSet ay nilikha. Ang mga elemento ng data ng string ay idinaragdag sa bagay na iyon gamit ang paraan ng pagdaragdag. Ang pagkakasunod-sunod na ipinasok ng data ay A, D, A, B, C, D. Gamit ang iterator, ang mga nakaimbak na halaga ay naka-print sa screen. Ang output ay A, B, C, D. Kahit na mayroong dalawang letrang A at dalawang letrang D, ipinapakita ng output ang isa A at isang D bawat isa. Samakatuwid, ang TreeSet ay nag-iimbak ng mga natatanging elemento. Walang partikular na pagkakasunud-sunod ng pagpasok ngunit kapag sinusunod ang output, makikita na pinapanatili ng TreeSet ang pataas na pagkakasunud-sunod ng mga elemento.
Ano ang HashSet?
Ang klase ng HashSet ay nagpapalawak ng klase ng AbstractSet na nagpapatupad ng Set Interface. Ang Set na interface ay namamana ng Collection at Iterable na mga interface sa hierarchical order. Sa HashSet, walang garantiya na mapanatili ng mga elemento ang pataas na pagkakasunud-sunod at ang ipinasok na pagkakasunud-sunod. Kung ang inilagay na order ay A, B, C, maaaring mag-store ang mga value bilang C, A, B. Ang pagkakasunud-sunod ng pag-iimbak ay maaari ding A, B, C ngunit walang garantiya na ang inilagay na order o pataas na pagkakasunod-sunod ay pinananatili.
Figure 02: Programa na may HashSet
Ayon sa programa sa itaas, isang bagay na may uri ng HashSet ay nilikha. Ang mga elemento ng data ng string ay idinaragdag sa bagay na iyon gamit ang paraan ng pagdaragdag. Ang pagkakasunod-sunod na ipinasok ng data ay L, R, M, M, R, L. Gamit ang iterator, ang mga nakaimbak na halaga ay naka-print sa screen. Ang output ay R L M. Kahit na, mayroong dalawang L, R at M na letra mula sa bawat isa, isang letra lamang mula sa bawat isa ang ipinapakita. Samakatuwid, ang HashSet ay nag-iimbak ng mga natatanging elemento. Kapag inoobserbahan ang output, makikita na walang pataas na ayos o pinapanatili ang inilagay na ayos.
Ano ang Pagkakatulad sa pagitan ng TreeSet at HashSet?
- Ang TreeSet at HashSet ay mga klase na kabilang sa hierarchy ng koleksyon.
- Ang TreeSet at HashSet ay nag-iimbak lamang ng mga natatanging elemento.
- Maaaring gamitin ang TreeSet at HashSet para mag-imbak at magmanipula ng maraming elemento.
- Hindi pinapanatili ng TreeSet at HashSet ang ipinasok na pagkakasunud-sunod.
Ano ang Pagkakaiba sa pagitan ng TreeSet at HashSet?
TreeSet vs HashSet |
|
Ang TreeSet ay isang klase sa hierarchy ng koleksyon na ginagamit upang mag-imbak ng mga natatanging elemento sa pataas na pagkakasunud-sunod. | Ang HashSet ay isang klase sa hierarchy ng koleksyon na ginagamit upang mag-imbak ng mga natatanging elemento gamit ang mekanismo ng Hashing. |
Pag-iimbak ng Element | |
Iniimbak ng TreeSet ang mga elemento sa pataas na pagkakasunud-sunod. | Hindi iniimbak ng HashSet ang mga elemento sa pataas na pagkakasunud-sunod. |
Buod – TreeSet vs HashSet
Sa programming, kinakailangan na mag-imbak ng mga elemento ng data nang pabago-bago. Ang mga programming language gaya ng Java ay sumusuporta sa Collections para makamit ang gawaing ito. Mayroong isang bilang ng mga interface at klase sa hierarchy ng koleksyon. Ang TreeSet at HashSet ay dalawang klase sa hierarchy ng Collection. Parehong nagpapatupad ng Set interface. Ang TreeSet ay isang klase na nagpapatupad ng Set interface at ginagamit ito upang mag-imbak ng mga natatanging elemento sa pataas na pagkakasunud-sunod. Ang HashSet ay isang klase na nagpapatupad ng Set interface at ginagamit ito upang mag-imbak ng mga natatanging elemento gamit ang mekanismo ng Hashing. Ang pagkakaiba sa pagitan ng TreeSet at HashSet ay ang TreeSet ay nag-iimbak ng mga elemento sa pataas na pagkakasunud-sunod habang ang HashSet ay hindi nag-iimbak ng mga elemento sa pataas na pagkakasunud-sunod. Tinalakay ng artikulong ito ang pagkakaiba ng TreeSet at HashSet.