1. Tömbök a memóriában
Az előző példákban az illusztrációk kissé pontatlanok voltak.
Tömbök létrehozásakor (mint a karakterláncok létrehozásakor) két külön memóriablokk van lefoglalva: az egyik magának a tömbnek (tárolónak) a tárolására, a másik pedig a címét tároló változónak . Az alábbi kép ezt a pontosítást mutatja:
Az elemtömbhöz lefoglalt memória 10
int
és a tömb címétint[]
tároló változó zöld színnel jelenik meg.int
Összehasonlításképpen int
az értéket tároló közönséges változó 199
kék színnel látható.
Ez egy kicsit a karakterláncok memóriában való tárolására emlékeztet, nem gondolod?
Így van, húrok. És csakúgy, mint amikor karakterláncokkal dolgozik, tömbváltozókat rendelhet egymáshoz:
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 . A változóban b mentse el a változóban tárolt címet a . Most a mutasson b ugyanarra a tömbobjektumra a memóriában. A tömbobjektum indexű cellájába 9 írja be a cellákban tárolt értékek összegét 2 (amely az értéket tárolja 4 ) és 7 (amely az értéket tárolja 9 ). |
A tömbobjektum ott marad, ahol volt, és a a
és b
változók ugyanazt a címet (hivatkozást) tárolják ugyanahhoz az objektumhoz. Nézz a képre:

2. További részletek a tömbökkel való munkavégzésről
Teljesen bármilyen típusú elemből álló tömböt hozhat létre. Ehhez egyszerűen írjon szögletes zárójelet a típusnév után. Általában a tömb létrehozása így néz ki:
type[] name = new type[number];
Ahol a típus a tömbben tárolandó elemek típusa. A név annak a változónak a neve, amelyet a tömbre fogunk használni, a szám pedig a tömb celláinak számát.
A fenti példa egy tömbváltozó és tömbobjektum létrehozásának kanonikus formája. A valóságban ez két különálló entitás.
Egy tömbváltozót külön is létrehozhat egy tömbobjektumtól:
type[] name;
name = new type[number];
És még egy pont, ami nem elhanyagolható:
Példák:
Kód | Magyarázat |
---|---|
|
Hozzon létre egy n elemtömböt |
|
Hozzon létre egy tömböt 203 elemekkel |
|
|
0..99
egy ArrayIndexOfBoundException
, ami azt jelenti, hogy az index kívül volt a tömb határain.
3. Tömb hossza
Ahogy az előző példában láthatta, létrehozhat egy tömbváltozót önmagában, majd később értéket (hivatkozást egy tömbobjektumra) rendelhet hozzá valahol a kódban. Még ezt is megteheti:
Kód | Magyarázat |
---|---|
|
Hozzon létre egy tömbváltozót, amelynek típusa int[] Ha a a változó kisebb, mint 10 , akkor hozzon létre egy elemtömböt 10 . Ellenkező esetben hozzon létre egy 20 elemtömböt |
És most mi mást lehet csinálni egy ilyen tömbbel? Honnan tudod, hogy hány elem van benne?
Ennek elősegítésére a tömbök egy speciális tulajdonsággal (változóval) rendelkeznek, melynek neve length
. Egy tömb hosszát a következő kifejezéssel találhatja meg:
array.length;
Itt array
van a tömbváltozó neve és length
a tömb tulajdonságának neve. A length
tulajdonság értéke nem változtatható: length
maga a tulajdonság hozzárendelhető más változókhoz, de nem rendelhető hozzá semmi (ha ezt megpróbáljuk, a program egyszerűen nem fordít le).
Folytathatjuk az előző példát így:
Kód | Magyarázat |
---|---|
|
Hozzon létre egy tömbváltozót, amelynek típusa int[] Ha a a változó kisebb, mint 10 , akkor hozzon létre egy elemtömböt 10 . Ellenkező esetben hozzon létre egy elemtömböt 20 Hurok a tömb összes elemén: tól 0 hosszigarray.length - 1 |
4. Tények összefoglalása a Java tömbjeiről
Foglaljuk össze, mit tudunk a tömbökről:
Tény 1. Egy tömb sok cellából áll.
2. tény. Egy adott cellát a szám (index) használatával ér el.
3. tény. Minden cella azonos típusú.
4. tény. Az összes cella kezdeti értéke 0 (ha a cellák számokat tárolnak), null
(ha a cellák objektumhivatkozásokat tárolnak) vagy false
(ha a cellák értékeket tárolnak boolean
). Ebben a fejezetben többet megtudhat az alapértelmezett értékekről .
Az 5. tény String[] list
csupán egy változó deklarációja. Ez nem hozza létre magát a tárolót (tömbobjektumot). A változó használatához először létre kell hozni egy tömböt (tárolót), és hozzá kell rendelni a változóhoz. Lásd az alábbi példát.
Tény 6. Amikor tömbobjektumot (tárolót) hozunk létre, meg kell adni, hogy mekkora, azaz hány cellát tartalmaz. Ez egy olyan utasítással történik, mint: new TypeName[n]
;
7. tény. Egy tömb hosszát a tulajdonság segítségével találhatjuk meg .length
.
8. tény. Egy tömb létrehozása után nem módosíthatja az elemeinek típusát vagy a tárolt elemek számát.
Kód | Magyarázat |
---|---|
|
s az null list vannull |
|
A list változó egy objektumra való hivatkozást tárol: egy elemekből álló string tömböt 10 . n van10 |
|
Most |
|
Kivételt (programhiba) dobunk, azaz a program összeomlik. list hivatkozást tárolnull |
|
Határokon kívüli tömb kivétel (programhiba) jön létre. Ha egy elemeket/cellákat list tárol 10 , akkor az érvényes indexek: 0 1 2 3 4 5 6 7 8 9 — 10 elemek. |
GO TO FULL VERSION