1. Mga array sa memorya
Sa mga nakaraang halimbawa, ang mga ilustrasyon ay medyo hindi tumpak.
Kapag lumilikha ng mga array (tulad ng kapag lumilikha ng mga string), dalawang magkahiwalay na bloke ng memorya ang inilalaan: isa para sa pag-iimbak ng array (lalagyan) mismo at isang pangalawang bloke para sa variable na nag-iimbak ng address nito . Ang larawan sa ibaba ay kumakatawan sa paglilinaw na ito:

Ang memorya na inilaan para sa hanay ng 10 intmga elemento at ang int[]variable na nag-iimbak ng address ng intarray, ay ipinapakita sa berde.
Para sa paghahambing, ang isang ordinaryong intvariable na nag-iimbak ng halaga 199ay ipinapakita sa asul.
Ito ay isang maliit na nakapagpapaalaala sa pag-iimbak ng mga string sa memorya, hindi ba?
Tama yan, strings. At tulad ng kapag nagtatrabaho ka sa mga string, maaari kang magtalaga ng mga variable ng array sa isa't isa:
| Code | Paliwanag |
|---|---|
|
Lumikha ng isang hanay ng 10 intmga elemento. Italaga ang halaga 4sa cell na may index 2. Italaga ang halaga 9sa cell na may index 7. Sa bvariable, i-save ang address na nakaimbak sa avariable. Ngayon aat bituro ang parehong array object sa memorya. Sa cell ng array object na may index 9, isulat ang kabuuan ng mga value na nakaimbak sa mga cell 2(na nag-iimbak ng value 4) at 7(na nag-iimbak ng value 9). |
Ang array object ay nananatili sa mismong lugar kung saan ito naroroon, at ang aat bmga variable ay nag-iimbak ng parehong address (reference) sa parehong bagay. Tingnan ang larawan:
2. Higit pang mga detalye tungkol sa pagtatrabaho sa mga array
Maaari kang lumikha ng isang hanay ng mga elemento ng ganap na anumang uri. Upang gawin ito, isulat lamang ang mga square bracket pagkatapos ng pangalan ng uri. Sa pangkalahatan, ang paglikha ng isang array ay ganito ang hitsura:
type[] name = new type[number];
Kung saan ang uri ay ang uri ng mga elemento na aming iimbak sa array. Ang pangalan ay ang pangalan ng variable na gagamitin namin upang sumangguni sa array, at ang numero ay ang bilang ng mga cell sa array.
Ang halimbawa sa itaas ay ang canonical form para sa paglikha ng array variable at array object. Sa katotohanan, ito ay dalawang magkahiwalay na entity.
Maaari kang lumikha ng isang array variable nang hiwalay mula sa isang array object:
type[] name;
name = new type[number];
At isa pang punto na hindi gaanong mahalaga:
Mga halimbawa:
| Code | Paliwanag |
|---|---|
|
Lumikha ng isang hanay ng nmga elemento |
|
Gumawa ng array na may 203mga elemento |
|
|
0..99isang ArrayIndexOfBoundException, ibig sabihin na ang index ay nasa labas ng mga hangganan ng array.
3. Haba ng array
Tulad ng nakita mo sa nakaraang halimbawa, maaari kang lumikha ng isang array variable nang mag-isa at pagkatapos ay magtalaga ng isang halaga (isang reference sa isang array object) dito sa isang lugar sa code. Maaari mo ring gawin ito:
| Code | Paliwanag |
|---|---|
|
Gumawa ng array variable na ang uri ay int[]Kung ang avariable ay mas mababa sa 10, pagkatapos ay gumawa ng array ng 10mga elemento. Kung hindi, lumikha ng isang hanay ng 20mga elemento |
At ngayon ano pa ang maaari mong gawin sa ganoong array? Paano mo malalaman kung ilang elemento ang nasa loob nito?
Upang makatulong dito, ang mga array ay may espesyal na property (variable) na pinangalanang length. Maaari mong mahanap ang haba ng isang array gamit ang expression na ito:
array.length;
Narito arrayang pangalan ng array variable at lengthang pangalan ng property ng array. Ang halaga ng lengthari-arian ay hindi mababago: ang lengthari-arian mismo ay maaaring italaga sa iba pang mga variable, ngunit walang maaaring italaga dito (kung susubukan mong gawin ito, ang programa ay hindi mag-compile).
Maaari tayong magpatuloy sa nakaraang halimbawa tulad nito:
| Code | Paliwanag |
|---|---|
|
Gumawa ng array variable na ang uri ay int[]Kung ang avariable ay mas mababa sa 10, pagkatapos ay gumawa ng array ng 10mga elemento. Kung hindi, lumikha ng hanay ng 20mga elemento I-loop ang lahat ng elemento ng array: mula 0hanggang habaarray.length - 1 |
4. Buod ng mga katotohanan tungkol sa mga array sa Java
Recap natin ang alam natin tungkol sa mga array:
Katotohanan 1. Ang array ay binubuo ng maraming cell.
Katotohanan 2. Ina-access mo ang isang partikular na cell sa pamamagitan ng paggamit ng numero nito (index).
Katotohanan 3. Ang lahat ng mga cell ay may parehong uri.
Katotohanan 4. Ang paunang halaga ng lahat ng mga cell ay 0 (kung ang mga cell ay nag-iimbak ng mga numero), null(kung ang mga cell ay nag-iimbak ng mga sanggunian ng bagay), o false(kung ang mga cell ay nag-iimbak booleanng mga halaga). Matututo ka pa tungkol sa mga default na halaga sa kabanatang ito .
Ang katotohanan 5. String[] list ay deklarasyon lamang ng isang variable. Hindi nito ginagawa ang container (array object) mismo. Para magamit ang variable, kailangan mo munang gumawa ng array (container) at italaga ito sa variable. Tingnan ang halimbawa sa ibaba.
Katotohanan 6. Kapag gumawa tayo ng array object (container), dapat nating ipahiwatig kung gaano ito kalaki, ibig sabihin, kung gaano karaming mga cell ang nilalaman nito. Ginagawa ito sa isang pahayag tulad ng: new TypeName[n];
Katotohanan 7. Ang haba ng isang array ay matatagpuan gamit ang .lengthproperty.
Katotohanan 8. Pagkatapos gumawa ng array, hindi mo mababago ang uri ng mga elemento nito o ang bilang ng mga elemento na iniimbak nito.
| Code | Paliwanag |
|---|---|
|
say nulllistaynull |
|
Ang listvariable ay nag-iimbak ng reference sa isang object: isang string array na binubuo ng 10mga elemento. nay10 |
|
Ngayon |
|
Ang isang exception (program error) ay itatapon, ibig sabihin, ang programa ay mag-crash. listnag-iimbak ng reference sanull |
|
Isang array-out-of-bounds exception (program error) ang bubuo. Kung ang isang listnag-iimbak 10ng mga elemento/cell, ang wastong mga indeks ay: 0 1 2 3 4 5 6 7 8 9— 10mga elemento. |
GO TO FULL VERSION