Mahalagang Pagkakaiba – Listahan kumpara sa Set
Karamihan sa mga programming language ay gumagamit ng mga arrays upang mag-imbak ng isang set ng data ng parehong uri. Ang isang pangunahing disbentaha ng mga array ay na, kapag ang laki ng array ay idineklara, hindi na ito mababago. Kung gusto ng programmer na mag-imbak ng mga value na lampas sa laki ng array, dapat siyang gumawa ng bagong array at kopyahin ang mga kasalukuyang elemento sa bagong array. Sa mga sitwasyong ito, maaaring gamitin ang mga koleksyon. Posibleng magdagdag ng mga elemento, magtanggal ng mga elemento at marami pang ibang operasyon na may suporta ng mga koleksyon. Mayroong iba't ibang uri ng mga koleksyon na magagamit sa mga programming language tulad ng Java. Ang List at Set ay mga interface ng hierarchy ng mga koleksyon. Ang batayang interface para sa iba pang mga interface ay Koleksyon. Ang pangunahing pagkakaiba sa pagitan ng Listahan at Set ay sinusuportahan ng Listahan ang pag-iimbak ng parehong elemento nang maraming beses habang hindi sinusuportahan ng Set ang pag-iimbak ng parehong elemento nang maraming beses. Samakatuwid, hindi pinapayagan ng isang Set ang pagdoble.
Ano ang Listahan?
Ang listahan ay isang interface na nagpapalawak sa interface ng Collection. Mayroong ilang mga pamamaraan sa interface ng Collection. Ang paraan ng pagdaragdag ay tumutulong upang magdagdag ng isang elemento. Ang 'paraan ng pag-alis' ay upang alisin ang isang elemento. Mayroong 'addAll method' para magdagdag ng maraming elemento habang 'removeAll method' para tanggalin ang mga elemento sa koleksyon. Ang pamamaraang naglalaman ay nakakatulong upang mahanap kung ang isang partikular na bagay ay naroroon sa Listahan o wala. Ang 'containsAll' ay upang mahanap kung ang isang set ng mga bagay ay naroroon sa koleksyon. Ang pamamaraan ng iterator ay ginagamit upang i-loop ang mga item ng listahan. Habang pinapalawak ng Listahan ang Koleksyon, ang lahat ng paraan ng Koleksyon ay nabibilang sa Listahan. Maliban sa mga pamamaraang iyon, ang Listahan ay may mga pamamaraan tulad ng get at set. Ang programmer ay maaaring makakuha ng isang halaga sa isang tiyak na index gamit ang get method. Ang programmer ay maaaring magtakda ng isang halaga sa isang tiyak na index gamit ang set na paraan. Ang 'indexOf' ay ginagamit upang mahanap ang index ng isang elemento.
Sa isang Listahan, ang mga operasyon ay maaaring isagawa ayon sa posisyon. Maaaring ibigay ng programmer ang elemento ng data na idaragdag sa index. Kaya ito ay idaragdag sa tiyak na index. Kung ang programmer ay hindi nagbibigay ng isang index, ang elemento ay idaragdag sa dulo ng Listahan. Pinapanatili din nito ang ipinasok na pagkakasunud-sunod. Kung idinagdag ang element 1 at idinagdag ang element2, ang element1 ay mauuna sa element2.
Figure 01: Listahan at Itakda
Ang ArrayList, LinkedList, Vector ay ilang klase na nagpapatupad ng Listahan. Sa isang ArrayList, mabilis ang pag-access sa isang elemento ngunit mas mababa ang pagpasok at pagtanggal. Ang ArrayList ay hindi ligtas sa thread. Ang pag-access sa parehong ArrayList mula sa maraming mga thread ay maaaring hindi magbigay ng parehong resulta. Sa isang LinkedList, ang mga elemento ay naka-link sa parehong pabalik at pasulong. Ang pagpasok at pagtanggal ng mga elemento gamit ang isang LinkedList ay mas mabilis kaysa sa ArrayList. Ang LinkedList ay nagpapatupad ng Listahan at Queue Pareho. Ang Vector ay katulad ng ArrayList, ngunit ito ay tread-safe dahil ang lahat ng mga pamamaraan ay naka-synchronize.
Ano ang Itinakda?
Ang Set ay isang interface na nagpapalawak sa interface ng Collection. Habang pinapalawak ng Set interface ang Koleksyon, ang lahat ng paraan ng Koleksyon ay kabilang din sa Set. Ang isang Set ay hindi sumusuporta sa mga halaga ng pagdoble. Samakatuwid, ang programmer ay hindi maaaring mag-imbak ng parehong elemento nang dalawang beses. Ito ay nagpapanatili ng isang natatanging hanay ng mga elemento. Pinapalawak ng SortedSet interface ang Set interface. Pinapanatili ng SortedSet ang mga elemento sa pinagsunod-sunod na pagkakasunud-sunod. Ang interface ng NavigableSet ay nagpapalawak ng SortedSet. Ang NavigableSet ay nagbibigay ng mga paraan ng pag-navigate gaya ng ibaba, sahig, kisame atbp.
Ang HashSet, LinkedHashSet, at TreeSet ay ilang klase na nagpapatupad ng Set interface. Ang HashSet ay nagpapatupad ng Set interface. Hindi nito pinapanatili ang ipinasok na pagkakasunud-sunod. Kung ang mga halaga ay ipinasok bilang a, x, b maaari itong mag-imbak bilang, x, a, b. Pinapanatili ng LinkedSet ang ipinasok na pagkakasunud-sunod. Kung ang mga elemento ay ipinasok sa a, x, b na pagkakasunud-sunod, ang ayos ng pag-iimbak ay magiging a, x, b. Ang TreeSet ay nagpapatupad ng Set at NavigableSet. Hindi nito pinapanatili ang pagkakasunud-sunod ng pagpasok ngunit iniimbak ang mga elemento sa pinagsunod-sunod na pagkakasunud-sunod. Kung ang ipinasok na order ay a, c, b, kung gayon ang mga elemento ay maiimbak bilang a, b, c. Ang lahat ng HashSet, LinkedHashSet at TreeSet ay hindi magkakaroon ng anumang mga duplicate na elemento.
Ano ang Pagkakatulad sa pagitan ng Listahan at Set?
- Ang mga interface ng Listahan at Itakda ay nagpapalawak ng interface ng Koleksyon.
- Parehong Ilista at Itakda ang mga pagpapatakbo ng suporta gaya ng pagdaragdag, pag-alis ng mga elemento.
Ano ang Pagkakaiba sa pagitan ng Listahan at Set?
List vs Set |
|
Ang List Interface ay ang sub interface ng Collection na naglalaman ng mga pamamaraan para magsagawa ng mga operasyon gaya ng pagpasok, pagtanggal batay sa index. | Ang Set Interface ay isang sub interface ng Collection na naglalaman ng mga paraan para magsagawa ng mga operasyon gaya ng pagpasok, pagtanggal ng mga elemento habang pinapanatili ang mga natatanging elemento. |
Mga Klase | |
Ang ArrayList, Vector, at LinkedList ay mga klase na nagpapatupad ng interface ng Listahan. | Ang HashSet, LinkedHashSet, at TreeSet ay mga klase na nagpapatupad ng Set interface. |
Element Duplication | |
Sinusuportahan ng listahan ang pagdoble ng mga elemento. | Hindi sinusuportahan ng Set ang pagdoble ng mga elemento. Ang mga elemento ay natatangi. |
Buod – Listahan vs Set
Ang mga koleksyon ay ginagamit upang dynamic na mag-imbak ng mga elemento. Ang mga programming language gaya ng Java ay nagbibigay ng Collection interface. Ang List at Set ay dalawang interface na kabilang sa Collection interface. Ang parehong mga interface ay nagpapalawak ng Koleksyon. Tinalakay ng artikulong ito ang pagkakaiba sa pagitan ng Listahan at Set. Ang pangunahing pagkakaiba sa pagitan ng Listahan at Set ay sinusuportahan ng Listahan ang pag-iimbak ng parehong elemento nang maraming beses habang hindi sinusuportahan ng Set ang pag-iimbak ng parehong elemento nang maraming beses. Palaging pinapanatili ng set ang mga natatanging elemento.