1. A tömb elemekből álló tároló
Biztosan hallottad már, hogy a számítógépek hatalmas mennyiségű információt képesek feldolgozni. Természetesen itt nagy segítséget jelentenek a feltételes utasítások ( if-else
) és a ciklusok ( for
, ). while
De csak idáig vihetnek. Végül is a feldolgozott adatokat valahogy tárolni kell.
Mint szinte minden programozási nyelv, a Java is megkönnyíti az adatfeldolgozást azáltal, hogy egy tömbnek ( Array
osztálynak) nevezett nagyszerű dolgot biztosít. Néha táblázatoknak is nevezik őket.
A tömb egy speciális objektum, amely nem egy, hanem több érték tárolását teszi lehetővé .
Korábban egy változót egy dobozhoz hasonlítottunk (amelyben bármilyen érték tárolható). Folytatva ezt a hasonlatot, egy tömböt úgy tekinthetünk, mint egy dobozt, amelynek belső rekeszei vannak. A „doboz” (tömb) minden rekeszének van egy szám. Persze a számozás nulláról indul...
Vagy tehetünk egy másik hasonlatot. Hasonlítsunk össze egy közönséges házat és egy sokemeletes bérházat. Egy közönséges házban egyetlen család lakik, de egy sokemeletes bérház lakásokra van osztva. Ha egy átlagos házban élő családnak szeretne levelet küldeni, adja meg a ház egyedi címét. Ha pedig egy lakásban élő családnak szeretne levelet küldeni, meg kell adni az épület egyedi címét, valamint a lakásszámot.
A tömbváltozó olyan, mint egy magas változó. Nem egy, hanem sok értéket tud tárolni. Egy ilyen változónak több lakása (cellája) van. Mindegyik megszólítható a számával (indexével).
Ehhez a változó neve után a címezni kívánt cella indexét jelöljük meg, az indexet szögletes zárójelbe helyezve. Ez elég egyszerű:
array[index] = value;
Ahol array
a tömbváltozó neve, index
a tömbben lévő cellaszám és value
az az érték, amelyet a megadott cellába szeretnénk bevinni.
De kezdésként nézzük meg, hogyan hozhatunk létre tömböket.
2. Elemtömb létrehozása Java nyelven
Tegyük fel, hogy a programnak 100
valahol egész számokat kell tárolnia. Erre jó jelölt lenne egy tömb. És hogyan lehet létrehozni egyet?
Ha egyetlen egész számot szeretnénk tárolni, a int
típus megfelelne nekünk. De ha egész számokat akarunk tárolni 100
, valószínűleg szükségünk van egy s tömbreint
. Így nézne ki a kód létrehozásához:
int[] array = new int[100];
Vizsgáljuk meg ezt az állítást.
Ahogy azt sejteni lehetett, az egyenlőségjeltől balra van egy változó deklarációja, array
amelynek típusa int[]
. A int
típust szögletes zárójelek követik, ami arra utal, hogy az ilyen típusú "dobozok" nem egy, hanem több értéket is tárolhatnak.
Az egyenlőségjeltől jobbra van egy példa az "objektum létrehozására" (a new
kulcsszó), hogy olyan elemeket (cellákat) kapjunk 100
, amelyek típusa int. Nincs itt semmi túl nehéz.
Hasonlóképpen, ha egy 20 cellából álló tömböt szeretnénk létrehozni valós számok tárolására, akkor a kódunk valahogy így nézne ki:
double[] vals = new double[20];
A tömbben lévő cellák számát a tömb méretének vagy a tömb hosszának nevezzük . És mivel a tömbök sok értéket tárolhatnak, konténereknek is nevezik őket.
Íme egy fontos tény: egy tömb méretét nem módosíthatja a létrehozása után .
Létrehozhat újat, de a meglévő tároló hossza nem módosítható.
3. Egy tömb celláival való munka
Oké, megtanultuk, hogyan kell tömböket létrehozni. Most hogyan dolgozzunk velük?
Nos, majdnem ugyanúgy, mint a közönséges változókkal. Az egyetlen különbség az, hogy a tömbváltozó neve után annak a cellának a számát kell feltüntetnünk, amellyel dolgozunk.
A cellák számozása egy tömbben mindig nulláról kezdődik. Ha van egy elemtömbünk 10
, akkor a celláinak számai (indexei) 0..9
. Ha a tömb 200
elemeket tartalmaz, akkor az indexek 0..199
. És így tovább analógia útján.
Példák:
Kód | Magyarázat |
---|---|
|
Hozzon létre egy elemtömböt 10 int . Rendelje hozzá az értéket 4 az indexű cellához 2 . Rendelje hozzá az értéket 9 az indexű cellához 7 . Az indexszel rendelkező cellába 9 írja be a cellákban tárolt értékek összegét 2 (amely az értéket tárolja 4 ) és 5 (amely az értéket tárolja 0 ). |
A kód végrehajtása után ez kerül tárolásra a memóriában:
A bal oldali oszlop (szürkével) a cellaszámokat (indexeket) jelzi. A cellák a hozzárendelt értékeket tárolják: 4
, 9
és 4
. Amikor a tömb létrejön, a cellái nullákkal vannak feltöltve.
Ez fontos. A tömb minden cellájának adattípusa azonos. Ha létrehozunk egy String
s tömböt, annak celláiban csak karakterláncok tárolhatók. Egy tömb adattípusa a létrehozáskor kerül megadásra. Sem az adattípus, sem a tömb hossza nem módosítható később.
GO TO FULL VERSION