1. String
hanay
Gusto kong bigyan ka ng maikling pangkalahatang-ideya tungkol sa String
mga array.
Tulad ng sinabi namin dati, ang isang array ay maaaring maging anumang uri. Nangangahulugan ito na maaari kang lumikha ng isang hanay ng String
mga s. Kung gusto naming magsulat ng program na "nagbabasa ng 10 linya mula sa keyboard at ipinapakita ang mga ito sa reverse order," narito ang magiging hitsura ng code:
|
Lumikha ng Scanner object Gumawa ng 10-element array object Loop mula 0 hanggang 9 Magbasa ng string mula sa keyboard at i-save ito sa susunod na cell ng array Loop mula 9 hanggang 0 Ipakita ang susunod na cell sa array |
Halos hindi nagbago ang code! Kailangan lang naming palitan int
ng String
kapag gumagawa ng array. Well, at kapag binabasa ang string mula sa keyboard, pinalitan din namin ang nextInt()
paraan ng nextLine()
.
2. String
array sa memorya
At isa pang kapaki-pakinabang na katotohanan. Isaalang-alang natin ang 3 larawan:
Larawan 1. Paano String
nakaayos ang isang bagay sa memorya:
Ang larawang ito ay kinuha mula sa mga nakaraang aralin.
Pakitandaan na ang teksto ng string ay hindi direktang nakaimbak sa variable: isang hiwalay na bloke ng memorya ang inilalaan para dito. Ang isang String
variable ay nag-iimbak ng address (reference) sa isang bagay na nag-iimbak ng teksto.
Larawan 2. Paano nakaayos ang isang integer array sa memorya:
Pamilyar din ang larawang ito.
Larawan 3. Paano nakaayos ang isang string array sa memorya:
Sa kaliwa nakikita namin ang isang array variable na ang uri ay String[]
(ito ay nag-iimbak ng address ng isang array object).
Sa gitna, mayroon kaming String
array object mismo.
At sa kanan ay mga string na bagay na nag-iimbak ng ilang teksto.
Ang mga cell ng String
array ay hindi nag-iimbak ng mga string mismo (ang teksto ng mga String object). Sa halip, iniimbak nila ang kanilang mga address (mga sanggunian sa kanila). Sa parehong paraan na String
iniimbak ng mga variable ang mga address ng mga string object (kung saan naka-imbak ang teksto).
Isaalang-alang ito kapag inihambing mo ang mga array cell:
|
Gumawa ng array ng 10 string Maglagay ng mga value sa array true (ang mga reference ay pantay) false (ang mga reference ay hindi pantay)true (ang mga string ay pantay) true (ang mga string ay pantay pa rin) |
3. Mabilis na pagsisimula ng array sa Java
Ang mga array ay sobrang kapaki-pakinabang, kaya sinubukan ng mga tagalikha ng Java na gawing maginhawa ang pakikipagtulungan sa kanila hangga't maaari.
Ang unang bagay na ginawa nila ay ang pasimplehin ang array initialization, ang proseso kung saan mo ibibigay ang mga paunang halaga ng isang array.
Pagkatapos ng lahat, bilang karagdagan sa data na nabasa mula sa isang lugar, ang isang programa ay madalas ding nangangailangan ng sarili nitong panloob na data upang gumana. Halimbawa, ipagpalagay na kailangan nating iimbak ang mga haba ng bawat buwan sa isang array. Ito ang maaaring hitsura ng code:
int[] months = new int[12];
months[0] = 31; // January
months[1] = 28; // February
months[2] = 31; // March
months[3] = 30; // April
months[4] = 31; // May
months[5] = 30; // June
months[6] = 31; // July
months[7] = 31; // August
months[8] = 30; // September
months[9] = 31; // October
months[10] = 30; // November
months[11] = 31; // December
Ngunit salamat sa mga tagalikha ng Java, mayroong isang paraan upang maisulat ito nang mas maigsi:
// Lengths of months of the year
int[] months = new int[] { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
Maaari mo lamang ilista ang lahat ng mga halaga ng array, na pinaghihiwalay ng mga kuwit!
Maginhawa, tama? Ngunit hindi lang iyon.
Habang nangyayari ito, matutukoy ng compiler ang uri ng lalagyan (array object) batay sa uri ng mga halaga ng array. At para matukoy ang haba ng array, walang kuwenta na bilangin ang bilang ng mga elementong nakasulat sa curly braces.
Nangangahulugan ito na ang code na ito ay maaaring maisulat nang mas maikli:
// Lengths of months of the year
int[] months = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
Isang bagay ng kagandahan, hindi ba? 🙂
Ito ay tinatawag na "fast array initialization". Sa pamamagitan ng paraan, ito ay gumagana para sa mga uri maliban sa int
...
// Names of months of the year
String[] months = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November ", "December"};
GO TO FULL VERSION