Arrays vs Arraylists
Arrayet janë struktura më e përdorur e të dhënave për të ruajtur një koleksion elementësh. Shumica e gjuhëve të programimit ofrojnë metoda për të deklaruar lehtësisht vargjet dhe aksesin e elementeve në vargje. Një grup grupesh mund të shihet si një grup dinamik, i cili mund të rritet në madhësi. Për këtë arsye, programuesi nuk ka nevojë të dijë madhësinë e listës së grupeve kur ajo është duke e përcaktuar atë.
Çfarë janë vargje?
Treguar në figurën 1, është një pjesë e kodit që përdoret zakonisht për të deklaruar dhe caktuar vlera në një grup. Figura 2 përshkruan se si do të dukej një grup në memorie.
vlerat int[5]; vlerat[0]=100; vlerat[1]=101; vlerat[2]=102; vlerat[3]=103; vlerat[4]=104; |
Figura 1: Kodi për deklarimin dhe caktimin e vlerave në një grup
100 | 101 | 102 | 103 | 104 |
Indeksi: 0 | 1 | 2 | 3 | 4 |
Figura 2: Vargu i ruajtur në memorie
Sipër kod, përcakton një grup që mund të ruajë 5 numra të plotë dhe ato aksesohen duke përdorur indekset 0 deri në 4. Një veti e rëndësishme e një grupi është se, i gjithë grupi ndahet si një bllok i vetëm memorie dhe çdo element merr hapësirën e vet në grup. Pasi të përcaktohet një grup, madhësia e tij fiksohet. Pra, nëse nuk jeni të sigurt për madhësinë e grupit në kohën e përpilimit, do t'ju duhet të përcaktoni një grup mjaft të madh për të qenë në anën e sigurt. Por, në shumicën e rasteve, ne në fakt do të përdorim më pak elementë sesa kemi ndarë. Pra, një sasi e konsiderueshme memorie është në të vërtetë e humbur. Nga ana tjetër, nëse "vargu mjaft i madh" nuk është në fakt mjaft i madh, programi do të rrëzohej.
Çfarë janë listat e grupeve?
Një grup grupesh mund të shihet si një grup dinamik, i cili mund të rritet në madhësi. Prandaj, listat e grupeve janë ideale për t'u përdorur në situata në të cilat nuk e dini madhësinë e elementeve të kërkuara në kohën e deklarimit. Në Java, listat e grupeve mund të mbajnë vetëm objekte, ato nuk mund të mbajnë direkt tipat primitivë (mund t'i vendosni llojet primitive brenda një objekti ose të përdorni klasat e mbështjellësit të llojeve primitive). Në përgjithësi listat e grupeve pajisen me metoda për të kryer futjen, fshirjen dhe kërkimin. Kompleksiteti kohor i aksesimit të një elementi është o(1), ndërsa futja dhe fshirja kanë një kompleksitet kohor prej o(n). Në Java, listat e grupeve mund të përshkohen duke përdorur sythe foreach, përsëritës ose thjesht duke përdorur indekset.
Cili është ndryshimi midis Arrays dhe Arraylists
Edhe pse grupet dhe listat e grupeve janë të ngjashme në kuptimin që të dyja përdoren për të ruajtur koleksionet e elementeve, ato ndryshojnë në mënyrën se si përcaktohen. Madhësia e grupit duhet të jepet kur përcaktohet një grup, por ju mund të përcaktoni një listë pa e ditur madhësinë aktuale. Ju mund të shtoni elemente në një listë grupesh pasi të jetë përcaktuar dhe kjo nuk është e mundur me vargje. Por në Java, listat e grupeve nuk mund të mbajnë lloje primitive, por vargjet mund të përdoren për të mbajtur lloje primitive. Por nëse keni nevojë për një strukturë të dhënash që mund të ndryshojë madhësinë e saj, lista e grupeve do të ishte zgjidhja më e mirë.