1. Stringsusunan

Aku pengin menehi ringkesan ringkes babagan Stringarray.

Kaya sing wis dingerteni sadurunge, array bisa dadi jinis apa wae. Iki tegese sampeyan bisa nggawe Uploaded Strings. Yen kita pengin nulis program sing "maca 10 garis saka keyboard lan nampilake kanthi urutan sing mbalikke," iki kaya kode kasebut:

Scanner console = new Scanner(System.in);
String[] array = new String[10];
for (int i = 0; i < 10; i++)
{
   array[i] = console.nextLine();
}
for (int i = 9; i >= 0; i--)
{
   System.out.println(array[i]);
}
Nggawe Scannerobyek
Nggawe obyek array 10-elemen
Loop saka 0 nganti 9

Waca senar saka keyboard lan simpen ing sel sabanjure array
Loop saka 9 nganti 0

Tampilake sel sabanjure ing array

Kode meh wae diganti! Kita mung kudu ngganti intkaro Stringnalika nggawe array. Inggih, lan nalika maca senar saka keyboard, kita uga ngganti nextInt()cara karo nextLine().


2. Stringlarik ing memori

Lan siji kasunyatan liyane migunani. Ayo dipikirake 3 gambar:

Gambar 1. Carane Stringobyek disusun ing memori:

String array ing memori

Gambar iki dijupuk saka pelajaran sadurunge.

Wigati dimangerteni manawa teks string ora disimpen langsung ing variabel: blok memori sing kapisah diparengake. Variabel Stringnyimpen alamat (referensi) menyang obyek sing nyimpen teks.

Gambar 2. Carane array integer disusun ing memori:

String array ing memori 2

Gambar iki uga akrab.

Gambar 3. Carane array string disusun ing memori:

Carane array String disusun ing memori

Ing sisih kiwa kita ndeleng variabel array sing jinise String[](nyimpen alamat obyek array).

Ing tengah, kita duwe Stringobyek array dhewe.

Lan ing sisih tengen ana obyek senar sing nyimpen sawetara teks.

Sel-sel array Stringora nyimpen senar dhewe (teks obyek String). Nanging, padha nyimpen alamat (referensi kanggo wong-wong mau). Kanthi cara sing padha Stringvariabel nyimpen alamat obyek senar (ing ngendi teks disimpen).

Coba dipikirake nalika mbandhingake sel array:

String[] array = new String[10];

array[1] = "Hello";
array[2] = array[1];
array[3] = new String("Hello");
// Compare
array[1] == array[2];
array[1] == array[3];
array[1].equals(array[3]);
array[1].equalsIgnoreCase(array[3]);
Gawe larik 10 senar

Lebokake nilai menyang larik



true (referensi padha)
false (referensi ora padha)
true (senar padha)
true(senar isih padha)


3. Initialization array cepet ing Jawa

Arrays migunani banget, mula para pangripta Jawa nyoba supaya bisa digunakake kanthi trep.

Babagan pisanan sing ditindakake yaiku nyederhanakake initialization array, proses sing sampeyan nyedhiyakake nilai awal array.

Sawise kabeh, saliyane data sing diwaca saka endi wae, program uga asring mbutuhake data internal dhewe supaya bisa digunakake. Contone, umpamane kita kudu nyimpen dawa saben sasi ing array. Iki kaya kode kasebut:

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

Nanging matur nuwun kanggo pangripta Jawa, ana cara kanggo nulis iki kanthi luwih ringkes:

// Lengths of months of the year
int[] months = new int[] { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

Sampeyan mung bisa dhaptar kabeh nilai array, dipisahake karo koma!

Trep, ta? Nanging ora mung kuwi.

Kaya sing kedadeyan, kompiler bisa nemtokake jinis wadhah (obyek array) adhedhasar jinis nilai array. Lan kanggo nemtokake dawa array, iku ora pati penting kanggo count nomer unsur ditulis ing kurung kriting.

Tegese kode iki bisa ditulis luwih cendhek:

// Lengths of months of the year
int[] months = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

A bab kaendahan, iku ora? 🙂

Iki diarani "inisialisasi array cepet". Miturut cara, iki bisa digunakake kanggo jinis liyane saka int...

// Names of months of the year
String[] months = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November ", "December"};