1. Arrays ing memori

Ing conto sadurunge, ilustrasi rada ora akurat.

Nalika nggawe array (kaya nalika nggawe strings), rong blok memori sing kapisah diparengake: siji kanggo nyimpen array ( wadhah) dhewe lan blok kapindho kanggo variabel sing nyimpen alamat . Gambar ing ngisor iki nggambarake klarifikasi iki:

Array ing memori

Memori diparengake kanggo Uploaded 10 intunsur lan int[]variabel sing nyimpen alamat Uploaded int, ditampilake ing ijo.

Kanggo mbandhingake, variabel biasa intsing nyimpen nilai 199ditampilake kanthi warna biru.

Iki rada ngeling-eling nyimpen senar ing memori, apa ora?

Bener, strings. Lan kaya nalika sampeyan nggarap strings, sampeyan bisa nemtokake variabel array siji liyane:

Kode Panjelasan
int[] a = new int[10];
a[2] = 4;
a[7] = 9;
int[] b = a;

a[9] = b[2] + a[7];
Nggawe array saka 10 intunsur.
Nemtokake nilai 4menyang sel kanthi indeks 2.
Nemtokake nilai 9menyang sel kanthi indeks 7.
Ing bvariabel, simpen alamat sing disimpen ing avariabel.
Saiki alan barahake obyek array sing padha ing memori.
Ing sel obyek array kanthi indeks 9, tulis jumlah nilai sing disimpen ing sel 2(sing nyimpen nilai 4) lan 7(sing nyimpen nilai kasebut 9).

Objek array tetep ing endi wae, lan variabel alan bnyimpen alamat (referensi) sing padha menyang obyek sing padha. Deloken gambare:

Array ing memori 2

2. Rincian liyane babagan nggarap array

Sampeyan bisa nggawe array saka unsur pancen sembarang tipe. Kanggo nindakake iki, mung nulis kurung kothak sawise jeneng jinis. Umumé, nggawe array katon kaya iki:

type[] name = new type[number];

Ngendi jinis yaiku jinis unsur sing bakal disimpen ing array. Jeneng minangka jeneng variabel sing bakal digunakake kanggo ngrujuk marang array, lan nomer minangka nomer sel ing array.

Conto ing ndhuwur minangka wangun kanonik kanggo nggawe variabel array lan obyek array. Ing kasunyatan, iki minangka rong entitas sing kapisah.

Sampeyan bisa nggawe variabel array kanthi kapisah saka obyek array:

type[] name;
name = new type[number];

Lan siji titik liyane sing ora pati penting:

Sampeyan bisa nggunakake variabel utawa malah kabeh ekspresi minangka larik indeks lan nomer unsur larik .

Tuladha:

Kode Panjelasan
int n = 100;
int[] a = new int[n];
Nggawe array saka nunsur
int n = 100;
int[] a = new int[n * 2 + 3];
Nggawe larik karo 203unsur
int n = 100;
int[] a = new int[n];
a[n-1] = 2;
a[n-2] = 3;
a[n/5] = a[n-1] + a[n-2]


// a[99] = 2;
// a[98] = 3;
// a[20] = a[99] + a[98];
penting:
Miturut cara, sampeyan kudu ngerti yen sampeyan nyoba ngakses sel array nggunakake indeks sing ora ana kanggo array (ing conto kita, tegese sembarang integer ora ana ing kisaran ), banjur program bakal nabrak 0..99karo ArrayIndexOfBoundException, tegese indeks kasebut ana ing njaba wates array.

3. Panjang array

Kaya sing sampeyan deleng ing conto sadurunge, sampeyan bisa nggawe variabel array dhewe lan banjur menehi nilai (referensi menyang obyek array) ing ngendi wae ing kode kasebut. Sampeyan malah bisa nindakake iki:

Kode Panjelasan
int[] array;
if (a < 10)
   array = new int[10];
else
   array = new int[20];
Nggawe variabel array sing jinise int[]
Yen avariabel kurang saka 10,
banjur gawe array 10unsur.
Yen ora,
nggawe array saka 20unsur

Lan saiki apa maneh sing bisa sampeyan lakoni karo array kasebut? Carane sampeyan ngerti carane akeh unsur ing?

Kanggo mbantu iki, array duwe properti khusus (variabel) jenenge length. Sampeyan bisa nemokake dawa array nggunakake ekspresi iki:

array.length;

Punika arrayjeneng variabel array lan lengthjeneng properti array. Nilai properti lengthora bisa diganti: lengthproperti kasebut dhewe bisa ditugasake menyang variabel liyane, nanging ora ana sing bisa ditugasake (yen sampeyan nyoba nindakake iki, program kasebut ora bakal dikompilasi).

Kita bisa nerusake conto sadurunge kaya iki:

Kode Panjelasan
int[] array;
if (a < 10)
   array = new int[10];
else
   array = new int[20];
for (int i = 0; i < array.length; i++)
{
   System.out.println(array[i]);
}
Nggawe variabel array sing jinise int[]
Yen avariabel kurang saka 10,
banjur gawe array 10unsur.
Yen ora,
nggawe Uploaded 20unsur
Loop liwat kabeh unsur Uploaded: saka 0kanggo dawaarray.length - 1

4. Ringkesan kanyatan bab larik ing basa Jawa

Ayo recap apa sing kita ngerti babagan array:

Kasunyatan 1. Array dumadi saka pirang-pirang sel.

Kasunyatan 2. Sampeyan ngakses sel tartamtu kanthi nggunakake nomer (indeks).

Kasunyatan 3. Kabeh sel ana jinis sing padha.

Kasunyatan 4. Nilai awal kabeh sel yaiku 0 (yen sel nyimpen nomer), null(yen sel nyimpen referensi obyek), utawa false(yen sel nyimpen booleannilai). Sampeyan bakal sinau luwih lengkap babagan nilai standar ing bab iki .

Kasunyatan 5. String[] list mung deklarasi variabel. Iki ora nggawe wadhah (obyek array) dhewe. Kanggo nggunakake variabel, sampeyan kudu nggawe array (wadhah) lan nemtokake menyang variabel. Deleng conto ing ngisor iki.

Kasunyatan 6. Nalika nggawe obyek array (wadhah), kita kudu nunjukake ukurane, yaiku jumlah sel sing ana. Iki ditindakake kanthi pratelan kaya: new TypeName[n];

Kasunyatan 7. Dawane array bisa ditemokake kanthi nggunakake .lengthproperti kasebut.

Kasunyatan 8. Sawise nggawe array, sampeyan ora bisa ngganti jinis unsur utawa jumlah unsur sing disimpen.

Kode Panjelasan
String s;
String[] list;
spunika null
listpunikanull
list = new String[10];
int n = list.length;
Variabel listnyimpen referensi kanggo obyek: array string sing dumadi saka 10unsur.
npunika10
list = new String[0];

Saiki listnuduhake macem-macem 0unsur. Array kasebut ana, nanging ora bisa nyimpen unsur apa wae.

list = null;
System.out.println(list[1]);
Pangecualian (kesalahan program) bakal dibuwang, yaiku program bakal nabrak. listnyimpen referensi kanggonull
list = new String[10];
System.out.println(list[10]);
Pangecualian array-out-of-bounds (kesalahan program) bakal digawe.
Yen listnyimpen 10unsur / sel, indeks sing bener yaiku: 0 1 2 3 4 5 6 7 8 9- 10unsur.