Masīvi vs Arraylists
Masīvi ir visbiežāk izmantotā datu struktūra, lai saglabātu elementu kolekciju. Lielākā daļa programmēšanas valodu nodrošina metodes masīvu un piekļuves elementu vieglai deklarēšanai masīvā. Maralistu var uzskatīt par dinamisku masīvu, kura lielums var pieaugt. Šī iemesla dēļ programmētājam, nosakot to, nav jāzina masilista lielums.
Kas ir masīvi?
Parādīts 1. attēlā ir koda gabals, ko parasti izmanto masīva vērtību deklarēšanai un piešķiršanai. 2. attēlā parādīts, kā masīvs izskatās atmiņā.
int vērtības [5]; vērtības [0] = 100; vērtības [1] = 101; vērtības [2] = 102; vērtības [3] = 103; vērtības [4] = 104; |
1. attēls. Masīva vērtību deklarēšanas un piešķiršanas kods
100 | 101. lpp | 102. lpp | 103. lpp | 104. lpp |
Indekss: 0 | 1 | 2 | 3 | 4 |
2. attēls: Atmiņā saglabātais masīvs
Virs koda definē masīvu, kurā var saglabāt 5 veselus skaitļus, un tiem var piekļūt, izmantojot indeksus no 0 līdz 4. Viena no svarīgām masīva īpašībām ir tā, ka viss masīvs tiek piešķirts kā viens atmiņas bloks un katrs elements masīvā iegūst savu vietu. . Kad masīvs ir definēts, tā lielums tiek fiksēts. Tātad, ja sastādīšanas laikā neesat pārliecināts par masīva lielumu, jums jādefinē pietiekami liels masīvs, lai tas atrastos drošajā pusē. Bet lielākoties mēs faktiski izmantosim mazāk elementu, nekā esam iedalījuši. Tātad faktiski tiek tērēts ievērojams atmiņas apjoms. No otras puses, ja “pietiekami liels masīvs” faktiski nav pietiekami liels, programma sabojājas.
Kas ir masieri??
Maralistu var uzskatīt par dinamisku masīvu, kura lielums var pieaugt. Tāpēc masīvu saraksti ir ideāli izmantojami situācijās, kad jūs nezināt deklarēšanas laikā nepieciešamo elementu lielumu. Java valodā masīvu saraksti var turēt tikai objektus, tie nevar tieši turēt primitīvos tipus (varat ievietot primitīvos tipus objekta iekšpusē vai izmantot primitīvo tipu iesaiņojuma klases). Parasti masīvu saraksti tiek nodrošināti ar metodēm ievietošanas, dzēšanas un meklēšanas veikšanai. Laika sarežģītība piekļuvei elementam ir o (1), savukārt ievietošanai un izdzēšanai laika sarežģītība ir o (n). Java programmā masīvu sarakstus var apbraukt, izmantojot foreach cilpas, iteratorus vai vienkārši izmantojot indeksus.
Kāda ir atšķirība starp masīviem un masīvu sarakstiem
Pat ja masīvi un masīvu saraksti ir līdzīgi tādā nozīmē, ka abi no tiem tiek izmantoti elementu kolekciju glabāšanai, tie atšķiras pēc to definēšanas. Masīva lielums ir jānorāda, kad tiek definēts masīvs, bet jūs varat definēt masalistu sarakstu, nezinot faktisko lielumu. Pēc tam, kad tas ir definēts, jūs varat pievienot elementus masalistam, un tas nav iespējams ar masīviem. Bet Java masīvu sarakstos nevar būt primitīvie tipi, bet masīvus var izmantot primitīvo tipu turēšanai. Bet, ja jums nepieciešama datu struktūra, kas var atšķirties pēc tā lieluma, labākais saraksts būtu parastais saraksts.