Diferenca kryesore – Lista vs Set
Shumica e gjuhëve programuese përdorin vargje për të ruajtur një grup të dhënash të të njëjtit lloj. Një pengesë kryesore e vargjeve është se, pasi të deklarohet madhësia e grupit, ajo nuk mund të modifikohet. Nëse programuesi dëshiron të ruajë një vlerë që tejkalon madhësinë e grupit, atëherë ai duhet të krijojë një grup të ri dhe të kopjojë elementët ekzistues në grupin e ri. Në këto situata, koleksionet mund të përdoren. Është e mundur shtimi i elementeve, fshirja e elementeve dhe shumë operacione të tjera me mbështetjen e koleksioneve. Ekzistojnë lloje të ndryshme koleksionesh të disponueshme në gjuhë programimi si Java. Lista dhe Set janë ndërfaqe të hierarkisë së koleksioneve. Ndërfaqja bazë për ndërfaqet e tjera është Koleksioni. Dallimi kryesor midis Listës dhe Set është se Lista mbështet ruajtjen e të njëjtit element shumë herë ndërsa Set nuk mbështet ruajtjen e të njëjtit element shumë herë. Prandaj, një grup nuk lejon dyfishim.
Çfarë është Lista?
Lista është një ndërfaqe që zgjeron ndërfaqen e Koleksionit. Ka një sërë metodash në ndërfaqen e Koleksionit. Metoda e shtimit ndihmon për të shtuar një element. "Metoda e heqjes" është të hiqni një element. Ekziston "metoda addAll" për të shtuar elementë të shumëfishtë ndërsa "RemoveAll metodë" për të hequr elementët nga koleksioni. Metoda përmban ndihmon për të gjetur nëse një objekt specifik është i pranishëm në Listë apo jo. "containsAll" është për të gjetur nëse një grup objektesh janë të pranishëm në koleksion. Metoda iterator përdoret për të kaluar nëpër artikujt e listës. Ndërsa Lista zgjeron Koleksionin, të gjitha metodat e Koleksionit i përkasin Listës. Përveç këtyre metodave, Lista ka metoda të tilla si get dhe set. Programuesi mund të marrë një vlerë në një indeks specifik duke përdorur metodën get. Programuesi mund të vendosë një vlerë në një indeks specifik duke përdorur metodën e setit. "IndeksiOf" përdoret për të gjetur indeksin e një elementi.
Në një listë, operacionet mund të kryhen sipas pozicionit. Programuesi mund të sigurojë elementin e të dhënave që duhet të shtohet në indeks. Pra, do t'i shtohet indeksit specifik. Nëse programuesi nuk jep një indeks, elementi do të shtohet në fund të Listës. Ai gjithashtu ruan rendin e futur. Nëse shtohet elementi 1 dhe më pas shtohet elementi 2, atëherë elementi 1 do të jetë para elementit 2.
Figura 01: Lista dhe vendosja
ArrayList, LinkedList, Vector janë disa klasa që implementojnë Listën. Në një ArrayList, qasja në një element është e shpejtë, por futja dhe fshirja është më e ulët. ArrayList nuk është i sigurt për temat. Qasja në të njëjtën ArrayList nga fije të shumta mund të mos japë të njëjtin rezultat. Në një LinkedList, elementët janë të lidhur si me prapa ashtu edhe me përpara. Futja dhe fshirja e elementeve duke përdorur një LinkedList është më e shpejtë se ArrayList. LinkedList implementon Listën dhe Radhën të dyja. Vektori është i ngjashëm me ArrayList, por është i sigurt për hapje, sepse të gjitha metodat janë të sinkronizuara.
Çfarë është Set?
Set është një ndërfaqe që zgjeron ndërfaqen e Koleksionit. Ndërsa ndërfaqja Set zgjeron Koleksionin, të gjitha metodat e Koleksionit i përkasin gjithashtu Set. Një grup nuk mbështet vlerat e dyfishimit. Prandaj, programuesi nuk mund të ruajë të njëjtin element dy herë. Ai ruan një grup unik elementësh. Ndërfaqja SortedSet zgjeron ndërfaqen Set. SortedSet ruan elementet në rend të renditur. Ndërfaqja NavigableSet zgjeron SortedSet. NavigableSet ofron metoda navigimi si p.sh. poshtë, dysheme, tavan etj.
HashSet, LinkedHashSet dhe TreeSet janë disa klasa që zbatojnë ndërfaqen Set. HashSet zbaton ndërfaqen Set. Nuk ruan rendin e futur. Nëse vlerat futen si a, x, b mund të ruhen si, x, a, b. LinkedSet ruan rendin e futur. Nëse elementet futen në rend a, x, b, rendi i ruajtjes do të jetë a, x, b. TreeSet implementon Set dhe NavigableSet. Nuk ruan rendin e futjes, por i ruan elementet sipas rendit të renditur. Nëse rendi i futur është a, c, b, atëherë elementët do të ruhen si a, b, c. Të gjitha HashSet, LinkedHashSet dhe TreeSet nuk do të kenë asnjë element të kopjuar.
Cilat janë ngjashmëritë midis listës dhe grupit?
- Të dyja ndërfaqet Listë dhe Set zgjerojnë ndërfaqen e Koleksionit.
- Të dyja operacionet mbështetëse Listoni dhe Vendosni, si shtimi, heqja e elementeve.
Cili është ndryshimi midis listës dhe grupit?
Lista vs Set |
|
Ndërfaqja e listës është nënndërfaqja e Koleksionit që përmban metoda për të kryer operacione të tilla si futja, fshirja në bazë të indeksit. | Set Interface është një nënndërfaqe e Koleksionit që përmban metoda për të kryer operacione të tilla si futja, fshirja e elementeve duke ruajtur elementet unike. |
Klasa | |
ArrayList, Vector dhe LinkedList janë klasa që zbatojnë ndërfaqen e Listës. | HashSet, LinkedHashSet dhe TreeSet janë klasa që zbatojnë ndërfaqen Set. |
Dublikim i elementeve | |
Lista mbështet dyfishimin e elementeve. | Set nuk mbështet dyfishimin e elementeve. Elementet janë unikë. |
Përmbledhje – Lista vs Set
Koleksionet përdoren për të ruajtur elementët në mënyrë dinamike. Gjuhët e programimit si Java ofrojnë ndërfaqen e Koleksionit. Lista dhe Set janë dy ndërfaqe që i përkasin ndërfaqes së Koleksionit. Të dy ndërfaqet zgjerojnë Koleksionin. Ky artikull diskutoi ndryshimin midis Listës dhe Set. Dallimi kryesor midis Listës dhe Set është se Lista mbështet ruajtjen e të njëjtit element shumë herë ndërsa Set nuk mbështet ruajtjen e të njëjtit element shumë herë. Seti ruan gjithmonë elementë unikë.